Skip to content

Commit

Permalink
Legg til forvalterrolle (#2509)
Browse files Browse the repository at this point in the history
* Vil legge til forvaltning rolle som kan brukes på forvaltningsendepunkt.

Fjernet bruk av toggle + deprecated erSaksbehandlerfunksjon

Flyttet infotrygdrapport til forvaltningspakke.
  • Loading branch information
ma10s authored Jan 11, 2024
1 parent ba99df6 commit 0508425
Show file tree
Hide file tree
Showing 14 changed files with 58 additions and 44 deletions.
2 changes: 2 additions & 0 deletions .deploy/preprod.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -109,6 +109,8 @@ spec:
- id: "ea930b6b-9397-44d9-b9e6-f4cf527a632a" # 0000-GA-Fortrolig_Adresse
- id: "dbe4ad45-320b-4e9a-aaa1-73cca4ee124d" # 0000-GA-Egne_ansatte
- id: "928636f4-fd0d-4149-978e-a6fb68bb19de" # prosessering.rolle - (0000-GA-STDAPPS)
- id: "c62e908a-cf20-4ad0-b7b3-3ff6ca4bf38b" # teamfamilie-forvaltning

extra:
- "NAVident"
- "azp_name"
Expand Down
1 change: 1 addition & 0 deletions .deploy/prod.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,7 @@ spec:
- id: "ad7b87a6-9180-467c-affc-20a566b0fec0" # 0000-GA-Strengt_Fortrolig_Adresse
- id: "9ec6487d-f37a-4aad-a027-cd221c1ac32b" # 0000-GA-Fortrolig_Adresse
- id: "e750ceb5-b70b-4d94-b4fa-9d22467b786b" # 0000-GA-Egne_ansatte
- id: "3d718ae5-f25e-47a4-b4b3-084a97604c1d" # teamfamilie-forvaltning

extra:
- "NAVident"
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
package no.nav.familie.ef.sak.forvaltning

import no.nav.familie.ef.sak.infotrygd.InfotrygdReplikaClient
import no.nav.familie.ef.sak.infotrygd.InfotrygdService
import no.nav.familie.ef.sak.infrastruktur.exception.feilHvisIkke
import no.nav.familie.ef.sak.infrastruktur.sikkerhet.TilgangService
import no.nav.familie.kontrakter.felles.Ressurs
import no.nav.security.token.support.core.api.ProtectedWithClaims
import org.slf4j.Logger
import org.slf4j.LoggerFactory
import org.springframework.web.bind.annotation.GetMapping
import org.springframework.web.bind.annotation.RequestMapping
import org.springframework.web.bind.annotation.RestController

@RestController
@RequestMapping("/api/forvaltning/infotrygd")
@ProtectedWithClaims(issuer = "azuread")
class InfotrygdForvaltningController(
private val infotrygdService: InfotrygdService,
private val tilgangService: TilgangService,
) {

val logger: Logger = LoggerFactory.getLogger(javaClass)

@GetMapping("rapport")
fun hentRapportÅpneSaker(): Ressurs<InfotrygdReplikaClient.ÅpnesakerRapport> {
logger.info("Henter åpne saker fra infotrygd")
feilHvisIkke(tilgangService.harForvalterrolle()) { "Må være forvalter for å hente ut rapport" }
return Ressurs.success(infotrygdService.hentÅpneSaker())
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,7 @@ package no.nav.familie.ef.sak.forvaltning
import no.nav.familie.ef.sak.behandlingsflyt.task.KonsistensavstemmingPayload
import no.nav.familie.ef.sak.behandlingsflyt.task.KonsistensavstemmingTask
import no.nav.familie.ef.sak.infrastruktur.exception.feilHvisIkke
import no.nav.familie.ef.sak.infrastruktur.featuretoggle.FeatureToggleService
import no.nav.familie.ef.sak.infrastruktur.featuretoggle.Toggle
import no.nav.familie.ef.sak.infrastruktur.sikkerhet.SikkerhetContext
import no.nav.familie.ef.sak.infrastruktur.sikkerhet.TilgangService
import no.nav.familie.kontrakter.felles.ef.StønadType
import no.nav.familie.prosessering.internal.TaskService
import no.nav.security.token.support.core.api.ProtectedWithClaims
Expand All @@ -20,14 +18,14 @@ import java.time.LocalDate
@ProtectedWithClaims(issuer = "azuread")
class KonsistensavstemmingForvaltningController(
private val taskService: TaskService,
private val featureToggleService: FeatureToggleService,
private val tilgangService: TilgangService,
) {

private val logger = LoggerFactory.getLogger(javaClass)

@PostMapping
fun kjørKonsistensavstemming() {
feilHvisIkke(erUtviklerMedVeilderrolle()) { "Kan kun kjøres av utvikler med veilederrolle" }
feilHvisIkke(tilgangService.harForvalterrolle()) { "Må være forvalter for å hente ut rapport" }
val triggerdato = LocalDate.now()
logger.info("Oppretter manuell tasks for konsistensavstemming for dato=$triggerdato")
taskService.saveAll(
Expand All @@ -43,7 +41,4 @@ class KonsistensavstemmingForvaltningController(
),
)
}

private fun erUtviklerMedVeilderrolle(): Boolean =
SikkerhetContext.erSaksbehandler() && featureToggleService.isEnabled(Toggle.UTVIKLER_MED_VEILEDERRROLLE)
}
Original file line number Diff line number Diff line change
@@ -1,13 +1,9 @@
package no.nav.familie.ef.sak.forvaltning

import no.nav.familie.ef.sak.fagsak.FagsakPersonRepository
import no.nav.familie.ef.sak.felles.dto.PersonIdentDto
import no.nav.familie.ef.sak.infrastruktur.exception.feilHvisIkke
import no.nav.familie.ef.sak.infrastruktur.featuretoggle.FeatureToggleService
import no.nav.familie.ef.sak.infrastruktur.featuretoggle.Toggle
import no.nav.familie.ef.sak.infrastruktur.sikkerhet.SikkerhetContext
import no.nav.familie.ef.sak.infrastruktur.sikkerhet.TilgangService
import no.nav.familie.ef.sak.minside.MinSideKafkaProducerService
import no.nav.familie.prosessering.internal.TaskService
import no.nav.security.token.support.core.api.ProtectedWithClaims
import org.springframework.web.bind.annotation.PostMapping
import org.springframework.web.bind.annotation.RequestBody
Expand All @@ -18,21 +14,19 @@ import org.springframework.web.bind.annotation.RestController
@RequestMapping("/api/minside/forvaltning/")
@ProtectedWithClaims(issuer = "azuread")
class MinsideForvaltningsController(
private val featureToggleService: FeatureToggleService,
private val minSideKafkaProducerService: MinSideKafkaProducerService,
private val fagsakPersonRepository: FagsakPersonRepository,
private val taskService: TaskService,
private val tilgangService: TilgangService,
) {
@PostMapping("aktiver")
fun aktiverPersonForMinSide(@RequestBody personIdentDto: PersonIdentDto) {
feilHvisIkke(erUtviklerMedVeilderrolle()) { "Kan kun kjøres av utvikler med veilederrolle" }
validerHarTilgangTilForvaltningsendepunkt()
validerPersonIdent(personIdentDto)
minSideKafkaProducerService.aktiver(personIdent = personIdentDto.personIdent)
}

@PostMapping("deaktiver")
fun deaktiverPersonForMinSide(@RequestBody personIdentDto: PersonIdentDto) {
feilHvisIkke(erUtviklerMedVeilderrolle()) { "Kan kun kjøres av utvikler med veilederrolle" }
validerHarTilgangTilForvaltningsendepunkt()
validerPersonIdent(personIdentDto)
minSideKafkaProducerService.deaktiver(personIdent = personIdentDto.personIdent)
}
Expand All @@ -43,6 +37,7 @@ class MinsideForvaltningsController(
}
}

private fun erUtviklerMedVeilderrolle(): Boolean =
SikkerhetContext.erSaksbehandler() && featureToggleService.isEnabled(Toggle.UTVIKLER_MED_VEILEDERRROLLE)
fun validerHarTilgangTilForvaltningsendepunkt() {
feilHvisIkke(tilgangService.harForvalterrolle()) { "Må være forvalter for å bruke forvaltningsendepunkt" }
}
}
Original file line number Diff line number Diff line change
@@ -1,9 +1,7 @@
package no.nav.familie.ef.sak.forvaltning

import no.nav.familie.ef.sak.infrastruktur.exception.feilHvisIkke
import no.nav.familie.ef.sak.infrastruktur.featuretoggle.FeatureToggleService
import no.nav.familie.ef.sak.infrastruktur.featuretoggle.Toggle
import no.nav.familie.ef.sak.infrastruktur.sikkerhet.SikkerhetContext
import no.nav.familie.ef.sak.infrastruktur.sikkerhet.TilgangService
import no.nav.familie.prosessering.internal.TaskService
import no.nav.security.token.support.core.api.ProtectedWithClaims
import org.springframework.web.bind.annotation.PathVariable
Expand All @@ -17,15 +15,12 @@ import java.util.UUID
@ProtectedWithClaims(issuer = "azuread")
class OppgaveforvaltningsController(
private val taskService: TaskService,
private val featureToggleService: FeatureToggleService,
private val tilgangService: TilgangService,
) {
@PostMapping("behandling/{behandlingId}")
fun loggOppgavemetadataFor(@PathVariable behandlingId: UUID) {
feilHvisIkke(erUtviklerMedVeilderrolle()) { "Kan kun kjøres av utvikler med veilederrolle" }
feilHvisIkke(tilgangService.harForvalterrolle()) { "Må være forvalter for å bruke forvaltningsendepunkt" }
val task = LoggOppgaveMetadataTask.opprettTask(behandlingId)
taskService.save(task)
}

private fun erUtviklerMedVeilderrolle(): Boolean =
SikkerhetContext.erSaksbehandler() && featureToggleService.isEnabled(Toggle.UTVIKLER_MED_VEILEDERRROLLE)
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,10 @@ package no.nav.familie.ef.sak.infotrygd

import no.nav.familie.ef.sak.AuditLoggerEvent
import no.nav.familie.ef.sak.felles.dto.PersonIdentDto
import no.nav.familie.ef.sak.infrastruktur.exception.feilHvis
import no.nav.familie.ef.sak.infrastruktur.featuretoggle.FeatureToggleService
import no.nav.familie.ef.sak.infrastruktur.featuretoggle.Toggle
import no.nav.familie.ef.sak.infrastruktur.sikkerhet.TilgangService
import no.nav.familie.kontrakter.ef.infotrygd.InfotrygdSakResponse
import no.nav.familie.kontrakter.felles.Ressurs
import no.nav.security.token.support.core.api.ProtectedWithClaims
import org.springframework.web.bind.annotation.GetMapping
import org.springframework.web.bind.annotation.PostMapping
import org.springframework.web.bind.annotation.RequestBody
import org.springframework.web.bind.annotation.RequestMapping
Expand All @@ -21,7 +17,6 @@ import org.springframework.web.bind.annotation.RestController
class InfotrygdController(
private val tilgangService: TilgangService,
private val infotrygdService: InfotrygdService,
private val featureToggleService: FeatureToggleService,
) {

@PostMapping("perioder")
Expand All @@ -35,12 +30,4 @@ class InfotrygdController(
tilgangService.validerTilgangTilPersonMedBarn(personIdent.personIdent, AuditLoggerEvent.ACCESS)
return Ressurs.success(infotrygdService.hentSaker(personIdent.personIdent))
}

@GetMapping("rapport")
fun hentRapportÅpneSaker(): Ressurs<InfotrygdReplikaClient.ÅpnesakerRapport> {
feilHvis(!featureToggleService.isEnabled(toggle = Toggle.TILLAT_HENT_UT_INFOTRYGD_RAPPORT)) {
"Rapport ikke tilgjengelig - toggle ikke enablet for bruker"
}
return Ressurs.success(infotrygdService.hentÅpneSaker())
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -17,4 +17,6 @@ class RolleConfig(
val kode7: String,
@Value("\${rolle.egenAnsatt}")
val egenAnsatt: String,
@Value("\${rolle.forvalter}")
val forvalter: String,
)
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@ object SikkerhetContext {
return result
}

@Deprecated("Bytt til _har_veileder_rolle eller tilsvarende")
fun erSaksbehandler(): Boolean = hentSaksbehandlerEllerSystembruker() != SYSTEM_FORKORTELSE

fun hentSaksbehandlerEllerSystembruker() =
Expand Down Expand Up @@ -104,7 +105,7 @@ object SikkerhetContext {
return rollerForBruker.contains(minimumsrolle)
}

fun harRolle(rolle: String): Boolean {
return hentGrupperFraToken().contains(rolle)
fun harRolle(rolleId: String): Boolean {
return hentGrupperFraToken().contains(rolleId)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -183,6 +183,8 @@ class TilgangService(
return SikkerhetContext.harTilgangTilGittRolle(rolleConfig, minimumsrolle)
}

fun harForvalterrolle() = SikkerhetContext.harRolle(rolleConfig.forvalter)

fun harEgenAnsattRolle(): Boolean =
hentGrupperFraToken().contains(rolleConfig.egenAnsatt)

Expand Down
1 change: 1 addition & 0 deletions src/main/resources/application-dev.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ rolle:
kode6: "5ef775f2-61f8-4283-bf3d-8d03f428aa14" # 0000-GA-Strengt_Fortrolig_Adresse
kode7: "ea930b6b-9397-44d9-b9e6-f4cf527a632a" # 0000-GA-Fortrolig_Adresse
egenAnsatt: "dbe4ad45-320b-4e9a-aaa1-73cca4ee124d" # 0000-GA-Egne_ansatte
forvalter: "c62e908a-cf20-4ad0-b7b3-3ff6ca4bf38b" # teamfamilie-forvaltning

prosessering.rolle: "928636f4-fd0d-4149-978e-a6fb68bb19de" # 0000-GA-STDAPPS 928636f4-fd0d-4149-978e-a6fb68bb19de
KAFKA_BROKERS: hostname:1234
Expand Down
1 change: 1 addition & 0 deletions src/main/resources/application.yml
Original file line number Diff line number Diff line change
Expand Up @@ -285,6 +285,7 @@ rolle:
kode6: "ad7b87a6-9180-467c-affc-20a566b0fec0" # 0000-GA-Strengt_Fortrolig_Adresse
kode7: "9ec6487d-f37a-4aad-a027-cd221c1ac32b" # 0000-GA-Fortrolig_Adresse
egenAnsatt: "e750ceb5-b70b-4d94-b4fa-9d22467b786b" # 0000-GA-Egne_ansatte
forvalter: "3d718ae5-f25e-47a4-b4b3-084a97604c1d" # teamfamilie-forvaltning

prosessering.rolle: "87190cf3-b278-457d-8ab7-1a5c55a9edd7" # Gruppen teamfamilie

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ internal class TilgangServiceTest {
private val cacheManager = ConcurrentMapCacheManager()
private val kode6Gruppe = "kode6"
private val kode7Gruppe = "kode7"
private val rolleConfig = RolleConfig("", "", "", kode6 = kode6Gruppe, kode7 = kode7Gruppe, "")
private val rolleConfig = RolleConfig("", "", "", kode6 = kode6Gruppe, kode7 = kode7Gruppe, "", "")
private val tilgangService =
TilgangService(
personopplysningerIntegrasjonerClient = personopplysningerIntegrajsonerClient,
Expand Down
1 change: 1 addition & 0 deletions src/test/resources/application-local.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ rolle:
kode6: "5ef775f2-61f8-4283-bf3d-8d03f428aa14" # 0000-GA-Strengt_Fortrolig_Adresse
kode7: "ea930b6b-9397-44d9-b9e6-f4cf527a632a" # 0000-GA-Fortrolig_Adresse
egenAnsatt: "dbe4ad45-320b-4e9a-aaa1-73cca4ee124d" # 0000-GA-Egne_ansatte
forvalter: "928636f4-fd0d-4149-978e-a6fb68bb19de" # 0000-GA-STDAPPS

prosessering.rolle: "928636f4-fd0d-4149-978e-a6fb68bb19de" # 0000-GA-STDAPPS

Expand Down

0 comments on commit 0508425

Please sign in to comment.