diff --git a/src/main/java/no/nav/veilarbvedtaksstotte/controller/UtkastController.java b/src/main/java/no/nav/veilarbvedtaksstotte/controller/UtkastController.java index ae64f92a..9efa8c50 100644 --- a/src/main/java/no/nav/veilarbvedtaksstotte/controller/UtkastController.java +++ b/src/main/java/no/nav/veilarbvedtaksstotte/controller/UtkastController.java @@ -5,6 +5,7 @@ import no.nav.veilarbvedtaksstotte.controller.dto.LagUtkastDTO; import no.nav.veilarbvedtaksstotte.controller.dto.OppdaterUtkastDTO; import no.nav.veilarbvedtaksstotte.domain.vedtak.Vedtak; +import no.nav.veilarbvedtaksstotte.service.UtrullingService; import no.nav.veilarbvedtaksstotte.service.VedtakService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; @@ -18,16 +19,18 @@ public class UtkastController { private final VedtakService vedtakService; + private final UtrullingService utrullingService; @Autowired - public UtkastController(VedtakService vedtakService) { + public UtkastController(VedtakService vedtakService, UtrullingService utrullingService) { this.vedtakService = vedtakService; + this.utrullingService = utrullingService; } @Deprecated(forRemoval = true) @GetMapping public Vedtak hentUtkast(@RequestParam("fnr") Fnr fnr) { - // Sjekkar utrulling for kontoret til brukar ✅ + utrullingService.sjekkAtBrukerTilhorerUtrulletKontor(fnr); return vedtakService.hentUtkast(fnr); } @@ -41,11 +44,12 @@ public BeslutterprosessStatusDTO beslutterprosessStatus(@PathVariable("vedtakId" @PostMapping public void lagUtkast(@RequestBody LagUtkastDTO lagUtkastDTO) { - // Sjekkar utrulling for kontoret til brukar ✅ - if (lagUtkastDTO == null || lagUtkastDTO.getFnr() == null) { throw new ResponseStatusException(HttpStatus.BAD_REQUEST, "Missing fnr"); } + + utrullingService.sjekkAtBrukerTilhorerUtrulletKontor(lagUtkastDTO.getFnr()); + vedtakService.lagUtkast(lagUtkastDTO.getFnr()); } @@ -67,7 +71,7 @@ public void oppdaterUtkast(@PathVariable("vedtakId") long vedtakId, @RequestBody @Deprecated(forRemoval = true) @GetMapping("{fnr}/harUtkast") public boolean harUtkast(@PathVariable("fnr") Fnr fnr) { - // Sjekkar utrulling for kontoret til brukar ✅ + utrullingService.sjekkAtBrukerTilhorerUtrulletKontor(fnr); return vedtakService.harUtkast(fnr); } @@ -95,5 +99,4 @@ public void oppdaterUtkast(@PathVariable("vedtakId") long vedtakId) { vedtakService.taOverUtkast(vedtakId); } - } diff --git a/src/main/java/no/nav/veilarbvedtaksstotte/controller/VedtakController.java b/src/main/java/no/nav/veilarbvedtaksstotte/controller/VedtakController.java index 517f2bc0..1f8cfc94 100644 --- a/src/main/java/no/nav/veilarbvedtaksstotte/controller/VedtakController.java +++ b/src/main/java/no/nav/veilarbvedtaksstotte/controller/VedtakController.java @@ -6,6 +6,7 @@ import no.nav.veilarbvedtaksstotte.domain.vedtak.Vedtak; import no.nav.veilarbvedtaksstotte.service.ArenaVedtakService; import no.nav.veilarbvedtaksstotte.service.OyeblikksbildeService; +import no.nav.veilarbvedtaksstotte.service.UtrullingService; import no.nav.veilarbvedtaksstotte.service.VedtakService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.MediaType; @@ -21,12 +22,14 @@ public class VedtakController { private final VedtakService vedtakService; private final ArenaVedtakService arenaVedtakService; private final OyeblikksbildeService oyeblikksbildeService; + private final UtrullingService utrullingService; @Autowired - public VedtakController(VedtakService vedtakService, ArenaVedtakService arenaVedtakService, OyeblikksbildeService oyeblikksbildeService) { + public VedtakController(VedtakService vedtakService, ArenaVedtakService arenaVedtakService, OyeblikksbildeService oyeblikksbildeService, UtrullingService utrullingService) { this.vedtakService = vedtakService; this.arenaVedtakService = arenaVedtakService; this.oyeblikksbildeService = oyeblikksbildeService; + this.utrullingService = utrullingService; } @GetMapping(value = "{vedtakId}/pdf", produces = MediaType.APPLICATION_PDF_VALUE) @@ -59,7 +62,7 @@ public ResponseEntity hentVedtakOyeblikksCVPdf(@PathVariable("vedtakId") @Deprecated(forRemoval = true) @GetMapping("/fattet") public List hentFattedeVedtak(@RequestParam("fnr") Fnr fnr) { - // Sjekkar utrulling for kontoret til brukar ✅ + utrullingService.sjekkAtBrukerTilhorerUtrulletKontor(fnr); return vedtakService.hentFattedeVedtak(fnr); } @@ -96,7 +99,7 @@ public OyeblikksbildeEgenvurderingDto hentEgenvurderingOyeblikksbilde(@PathVaria @Deprecated(forRemoval = true) @GetMapping("/arena") public List hentVedtakFraArena(@RequestParam("fnr") Fnr fnr) { - // Sjekkar utrulling for kontoret til brukar ✅ + utrullingService.sjekkAtBrukerTilhorerUtrulletKontor(fnr); return arenaVedtakService.hentVedtakFraArena(fnr); } @@ -111,4 +114,3 @@ public ResponseEntity hentVedtakPdfFraArena( .body(vedtakPdf); } } - diff --git a/src/main/java/no/nav/veilarbvedtaksstotte/controller/v2/UtkastV2Controller.kt b/src/main/java/no/nav/veilarbvedtaksstotte/controller/v2/UtkastV2Controller.kt index 06fa7754..cdee6773 100644 --- a/src/main/java/no/nav/veilarbvedtaksstotte/controller/v2/UtkastV2Controller.kt +++ b/src/main/java/no/nav/veilarbvedtaksstotte/controller/v2/UtkastV2Controller.kt @@ -2,6 +2,7 @@ package no.nav.veilarbvedtaksstotte.controller.v2 import no.nav.veilarbvedtaksstotte.controller.v2.dto.UtkastRequest import no.nav.veilarbvedtaksstotte.domain.vedtak.Vedtak +import no.nav.veilarbvedtaksstotte.service.UtrullingService import no.nav.veilarbvedtaksstotte.service.VedtakService import org.springframework.web.bind.annotation.PostMapping import org.springframework.web.bind.annotation.RestController @@ -11,17 +12,18 @@ import org.springframework.web.bind.annotation.RequestMapping @RestController @RequestMapping("/api/v2") class UtkastV2Controller( - val vedtakService: VedtakService + val vedtakService: VedtakService, + private val utrullingService: UtrullingService ) { @PostMapping("/hent-utkast") fun hentUtkast(@RequestBody utkastRequest: UtkastRequest): Vedtak { - // Sjekkar utrulling for kontoret til brukar ✅ + utrullingService.sjekkAtBrukerTilhorerUtrulletKontor(utkastRequest.fnr) return vedtakService.hentUtkast(utkastRequest.fnr) } @PostMapping("/utkast/hent-harUtkast") fun harUtkast(@RequestBody utkastRequest: UtkastRequest): Boolean { - // Sjekkar utrulling for kontoret til brukar ✅ + utrullingService.sjekkAtBrukerTilhorerUtrulletKontor(utkastRequest.fnr) return vedtakService.harUtkast(utkastRequest.fnr) } diff --git a/src/main/java/no/nav/veilarbvedtaksstotte/controller/v2/VedtakV2Controller.kt b/src/main/java/no/nav/veilarbvedtaksstotte/controller/v2/VedtakV2Controller.kt index 5eac027c..17ce8e90 100644 --- a/src/main/java/no/nav/veilarbvedtaksstotte/controller/v2/VedtakV2Controller.kt +++ b/src/main/java/no/nav/veilarbvedtaksstotte/controller/v2/VedtakV2Controller.kt @@ -4,31 +4,31 @@ import no.nav.veilarbvedtaksstotte.controller.v2.dto.VedtakRequest import no.nav.veilarbvedtaksstotte.domain.arkiv.ArkivertVedtak import no.nav.veilarbvedtaksstotte.domain.vedtak.Vedtak import no.nav.veilarbvedtaksstotte.service.ArenaVedtakService +import no.nav.veilarbvedtaksstotte.service.UtrullingService import no.nav.veilarbvedtaksstotte.service.VedtakService import org.springframework.web.bind.annotation.PostMapping +import org.springframework.web.bind.annotation.RequestBody import org.springframework.web.bind.annotation.RequestMapping import org.springframework.web.bind.annotation.RestController -import org.springframework.web.bind.annotation.RequestBody @RestController @RequestMapping("/api/v2/vedtak") class VedtakV2Controller( val vedtakService: VedtakService, val arenaVedtakService: ArenaVedtakService, + private val utrullingService: UtrullingService, ) { @PostMapping("/hent-fattet") fun hentFattedeVedtak(@RequestBody vedtakRequest: VedtakRequest): List { - // Sjekkar utrulling for kontoret til brukar ✅ + utrullingService.sjekkAtBrukerTilhorerUtrulletKontor(vedtakRequest.fnr) return vedtakService.hentFattedeVedtak(vedtakRequest.fnr) } @PostMapping("/hent-arena") fun hentVedtakFraArena(@RequestBody vedtakRequest: VedtakRequest): List { - // Sjekkar utrulling for kontoret til brukar ✅ + utrullingService.sjekkAtBrukerTilhorerUtrulletKontor(vedtakRequest.fnr) return arenaVedtakService.hentVedtakFraArena(vedtakRequest.fnr) } - } - diff --git a/src/main/java/no/nav/veilarbvedtaksstotte/service/UtrullingService.java b/src/main/java/no/nav/veilarbvedtaksstotte/service/UtrullingService.java index 6d82da38..b3bec5f1 100644 --- a/src/main/java/no/nav/veilarbvedtaksstotte/service/UtrullingService.java +++ b/src/main/java/no/nav/veilarbvedtaksstotte/service/UtrullingService.java @@ -11,7 +11,9 @@ import no.nav.veilarbvedtaksstotte.repository.UtrullingRepository; import no.nav.veilarbvedtaksstotte.repository.domain.UtrulletEnhet; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; import org.springframework.stereotype.Service; +import org.springframework.web.server.ResponseStatusException; import java.util.List; import java.util.stream.Collectors; @@ -81,4 +83,10 @@ public boolean tilhorerInnloggetVeilederUtrulletKontor() { return utrullingRepository.erMinstEnEnhetUtrullet(enhetIder); } + public void sjekkAtBrukerTilhorerUtrulletKontor(Fnr fnr) { + if (!tilhorerBrukerUtrulletKontor(fnr)) { + log.info("Vedtaksstøtte er ikke utrullet for brukers enhet. Tilgang er stoppet"); + throw new ResponseStatusException(HttpStatus.FORBIDDEN, "Vedtaksstøtte er ikke utrullet for enheten til bruker"); + } + } }