Skip to content

Commit

Permalink
skal ikke sette enhet dersom vedtaket er uten beslutter
Browse files Browse the repository at this point in the history
  • Loading branch information
ViktorGSolberg committed Feb 19, 2025
1 parent dcd9653 commit 67d04c9
Show file tree
Hide file tree
Showing 6 changed files with 40 additions and 32 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ enum class BehandlingResultat(
enum class BehandlingStatus {
OPPRETTET,
UTREDES,
FATTER_VEDTAK ,
FATTER_VEDTAK,
IVERKSETTER_VEDTAK,
FERDIGSTILT,
SATT_PÅ_VENT,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,19 +3,19 @@ package no.nav.familie.ef.sak.brev
import no.nav.familie.ef.sak.brev.dto.SignaturDto
import no.nav.familie.ef.sak.infrastruktur.sikkerhet.SikkerhetContext
import no.nav.familie.ef.sak.opplysninger.personopplysninger.PersonopplysningerService
import no.nav.familie.ef.sak.vedtak.VedtakService
import no.nav.familie.ef.sak.vedtak.domain.VedtakErUtenBeslutter
import no.nav.familie.kontrakter.felles.personopplysning.ADRESSEBESKYTTELSEGRADERING.STRENGT_FORTROLIG
import no.nav.familie.kontrakter.felles.personopplysning.ADRESSEBESKYTTELSEGRADERING.STRENGT_FORTROLIG_UTLAND
import org.springframework.stereotype.Service

@Service
class BrevsignaturService(
val personopplysningerService: PersonopplysningerService,
val vedtakService: VedtakService,
private val personopplysningerService: PersonopplysningerService,
) {

fun lagSaksbehandlerSignatur(personIdent: String, vedtakErUtenBeslutter: VedtakErUtenBeslutter): SignaturDto {
fun lagSaksbehandlerSignatur(
personIdent: String,
vedtakErUtenBeslutter: VedtakErUtenBeslutter,
): SignaturDto {
val harStrengtFortroligAdresse: Boolean =
personopplysningerService
.hentStrengesteAdressebeskyttelseForPersonMedRelasjoner(personIdent)
Expand All @@ -38,11 +38,12 @@ class BrevsignaturService(
.let { it == STRENGT_FORTROLIG || it == STRENGT_FORTROLIG_UTLAND }

val signaturNavn = if (vedtakErUtenBeslutter.value) "" else SikkerhetContext.hentSaksbehandlerNavn(true)
val signaturEnhet = if (vedtakErUtenBeslutter.value) "" else ENHET_NAY

return if (harStrengtFortroligAdresse) {
SignaturDto(NAV_ANONYM_NAVN, ENHET_VIKAFOSSEN, true)
} else {
SignaturDto(signaturNavn, ENHET_NAY, vedtakErUtenBeslutter.value)
SignaturDto(signaturNavn, signaturEnhet, vedtakErUtenBeslutter.value)
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,4 @@ data class SignaturDto(
val navn: String,
val enhet: String,
val skjulBeslutter: Boolean,
)
)
Original file line number Diff line number Diff line change
Expand Up @@ -4,49 +4,50 @@ import io.mockk.every
import io.mockk.mockk
import no.nav.familie.ef.sak.felles.util.BrukerContextUtil
import no.nav.familie.ef.sak.opplysninger.personopplysninger.PersonopplysningerService
import no.nav.familie.ef.sak.vedtak.VedtakService
import no.nav.familie.ef.sak.vedtak.domain.VedtakErUtenBeslutter
import no.nav.familie.kontrakter.felles.personopplysning.ADRESSEBESKYTTELSEGRADERING
import org.assertj.core.api.Assertions
import org.junit.jupiter.api.Test

internal class BrevsignaturServiceTest {
val personopplysningerService = mockk<PersonopplysningerService>()
val vedtakService = mockk<VedtakService>()
val brevsignaturService = BrevsignaturService(personopplysningerService, vedtakService)
private val personopplysningerService = mockk<PersonopplysningerService>()
private val brevsignaturService = BrevsignaturService(personopplysningerService)

@Test
fun `skal sende frittstående brev med NAV Vikafossen signatur dersom person har strengt fortrolig adresse`() {
every { personopplysningerService.hentStrengesteAdressebeskyttelseForPersonMedRelasjoner(any()) } returns ADRESSEBESKYTTELSEGRADERING.STRENGT_FORTROLIG
val signaturMedEnhet = brevsignaturService.lagSaksbehandlerSignatur("123", VedtakErUtenBeslutter(true))
Assertions.assertThat(signaturMedEnhet.enhet).isEqualTo(BrevsignaturService.ENHET_VIKAFOSSEN)
Assertions.assertThat(signaturMedEnhet.navn).isEqualTo(BrevsignaturService.NAV_ANONYM_NAVN)
Assertions.assertThat(signaturMedEnhet.skjulBeslutter).isTrue()
}

@Test
fun `skal sende frittstående brev med vanlig nay signatur når søkeradressebeskyttelse er ugradert`() {
val fortventetSaksbehandlerNavn = "Ole Olsen"
BrukerContextUtil.mockBrukerContext(fortventetSaksbehandlerNavn)
val saksbehandlerNavn = "Ole Olsen"
BrukerContextUtil.mockBrukerContext(saksbehandlerNavn)
every { personopplysningerService.hentStrengesteAdressebeskyttelseForPersonMedRelasjoner(any()) } returns ADRESSEBESKYTTELSEGRADERING.UGRADERT

val signaturMedEnhet = brevsignaturService.lagSaksbehandlerSignatur("123", VedtakErUtenBeslutter(false))

Assertions.assertThat(signaturMedEnhet.enhet).isEqualTo(BrevsignaturService.ENHET_NAY)
Assertions.assertThat(signaturMedEnhet.navn).isEqualTo(fortventetSaksbehandlerNavn)
Assertions.assertThat(signaturMedEnhet.navn).isEqualTo(saksbehandlerNavn)
Assertions.assertThat(signaturMedEnhet.skjulBeslutter).isFalse()

BrukerContextUtil.clearBrukerContext()
}

@Test
fun `skal sende frittstående brev med vanlig nay signatur selv om vedtak er uten beslutter`() {
val fortventetSaksbehandlerNavn = "Ole Olsen"
BrukerContextUtil.mockBrukerContext(fortventetSaksbehandlerNavn)
val saksbehandlerNavn = "Ole Olsen"
BrukerContextUtil.mockBrukerContext(saksbehandlerNavn)
every { personopplysningerService.hentStrengesteAdressebeskyttelseForPersonMedRelasjoner(any()) } returns ADRESSEBESKYTTELSEGRADERING.UGRADERT

val signaturMedEnhet = brevsignaturService.lagSaksbehandlerSignatur("123", VedtakErUtenBeslutter(true))

Assertions.assertThat(signaturMedEnhet.enhet).isEqualTo(BrevsignaturService.ENHET_NAY)
Assertions.assertThat(signaturMedEnhet.navn).isEqualTo(fortventetSaksbehandlerNavn)
Assertions.assertThat(signaturMedEnhet.navn).isEqualTo(saksbehandlerNavn)
Assertions.assertThat(signaturMedEnhet.skjulBeslutter).isTrue()

BrukerContextUtil.clearBrukerContext()
}
Expand All @@ -57,29 +58,34 @@ internal class BrevsignaturServiceTest {
val signaturMedEnhet = brevsignaturService.lagBeslutterSignatur("123", VedtakErUtenBeslutter(false))
Assertions.assertThat(signaturMedEnhet.enhet).isEqualTo(BrevsignaturService.ENHET_VIKAFOSSEN)
Assertions.assertThat(signaturMedEnhet.navn).isEqualTo(BrevsignaturService.NAV_ANONYM_NAVN)
Assertions.assertThat(signaturMedEnhet.skjulBeslutter).isFalse()
}

@Test
fun `skal sende vedtaksbrev brev med vanlig nay signatur når søkeradressebeskyttelse er ugradert`() {
val fortventetSaksbehandlerNavn = "Ole Olsen"
BrukerContextUtil.mockBrukerContext(fortventetSaksbehandlerNavn)

every { personopplysningerService.hentStrengesteAdressebeskyttelseForPersonMedRelasjoner(any()) } returns ADRESSEBESKYTTELSEGRADERING.STRENGT_FORTROLIG
every { personopplysningerService.hentStrengesteAdressebeskyttelseForPersonMedRelasjoner(any()) } returns ADRESSEBESKYTTELSEGRADERING.UGRADERT
val signaturMedEnhet = brevsignaturService.lagBeslutterSignatur("123", VedtakErUtenBeslutter(false))
Assertions.assertThat(signaturMedEnhet.enhet).isEqualTo(BrevsignaturService.ENHET_NAY)
Assertions.assertThat(signaturMedEnhet.navn).isEqualTo(fortventetSaksbehandlerNavn)
Assertions.assertThat(signaturMedEnhet.skjulBeslutter).isFalse()

BrukerContextUtil.clearBrukerContext()
}

@Test
fun `skal ikke sette navn på beslutter dersom vedtak er uten beslutter`() {
val saksbehandlerNavn = "Ole Olsen"
BrukerContextUtil.mockBrukerContext(saksbehandlerNavn)

every { personopplysningerService.hentStrengesteAdressebeskyttelseForPersonMedRelasjoner(any()) } returns ADRESSEBESKYTTELSEGRADERING.STRENGT_FORTROLIG
val signaturMedEnhet = brevsignaturService.lagBeslutterSignatur("123", VedtakErUtenBeslutter(false))
Assertions.assertThat(signaturMedEnhet.enhet).isEqualTo(BrevsignaturService.ENHET_NAY)
every { personopplysningerService.hentStrengesteAdressebeskyttelseForPersonMedRelasjoner(any()) } returns ADRESSEBESKYTTELSEGRADERING.UGRADERT
val signaturMedEnhet = brevsignaturService.lagBeslutterSignatur("123", VedtakErUtenBeslutter(true))
Assertions.assertThat(signaturMedEnhet.enhet).isEqualTo("")
Assertions.assertThat(signaturMedEnhet.navn).isEqualTo("")
}

Assertions.assertThat(signaturMedEnhet.skjulBeslutter).isTrue()

BrukerContextUtil.clearBrukerContext()
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@ import no.nav.familie.ef.sak.brev.domain.MottakerRolle
import no.nav.familie.ef.sak.brev.dto.FrittståendeSanitybrevDto
import no.nav.familie.ef.sak.brev.dto.SignaturDto
import no.nav.familie.ef.sak.fagsak.FagsakService
import no.nav.familie.ef.sak.fagsak.domain.Fagsak
import no.nav.familie.ef.sak.felles.util.BrukerContextUtil
import no.nav.familie.ef.sak.infrastruktur.exception.ApiFeil
import no.nav.familie.ef.sak.iverksett.IverksettClient
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,6 @@ import no.nav.familie.ef.sak.repository.vedtak
import no.nav.familie.ef.sak.vedtak.VedtakService
import no.nav.familie.ef.sak.vedtak.domain.VedtakErUtenBeslutter
import no.nav.familie.kontrakter.felles.objectMapper
import no.nav.familie.kontrakter.felles.personopplysning.ADRESSEBESKYTTELSEGRADERING
import no.nav.familie.kontrakter.felles.personopplysning.ADRESSEBESKYTTELSEGRADERING.STRENGT_FORTROLIG
import no.nav.familie.kontrakter.felles.personopplysning.ADRESSEBESKYTTELSEGRADERING.UGRADERT
import org.assertj.core.api.Assertions.assertThat
Expand All @@ -52,7 +51,7 @@ internal class VedtaksbrevServiceTest {
private val vedtaksbrevRepository = mockk<VedtaksbrevRepository>()
private val personopplysningerService = mockk<PersonopplysningerService>()
private val vedtakService: VedtakService = mockk<VedtakService>()
private val brevsignaturService = mockk<BrevsignaturService>()
private val brevsignaturService = BrevsignaturService(personopplysningerService)
private val familieDokumentClient = mockk<FamilieDokumentClient>()
private val tilordnetRessursService = mockk<TilordnetRessursService>()
private val fagsakService = mockk<FagsakService>()
Expand Down Expand Up @@ -87,7 +86,7 @@ internal class VedtaksbrevServiceTest {
}

@Test
internal fun `skal ikke sette navn på besluttersignatur dersom vedtak er uten beslutter`() {
internal fun `skal ikke sette navn eller enhet på besluttersignatur dersom vedtak er uten beslutter`() {
val vedtaksbrevSlot = slot<Vedtaksbrev>()

val ident = "12345678910"
Expand All @@ -110,8 +109,8 @@ internal class VedtaksbrevServiceTest {

assertThat(vedtaksbrevSlot.captured.saksbehandlersignatur).isNotNull
assertThat(vedtaksbrevSlot.captured.beslutterident).isEqualTo(beslutterNavn)
assertThat(vedtaksbrevSlot.captured.besluttersignatur).isEqualTo(beslutterNavn)
assertThat(vedtaksbrevSlot.captured.enhet).isEqualTo(ENHET_NAY)
assertThat(vedtaksbrevSlot.captured.besluttersignatur).isEqualTo("")
assertThat(vedtaksbrevSlot.captured.enhet).isEqualTo("")
assertThat(vedtaksbrevSlot.captured.beslutterPdf).isNotNull
}

Expand Down Expand Up @@ -297,7 +296,6 @@ internal class VedtaksbrevServiceTest {
val html = "html"

every { fagsakService.hentFagsak(any()) } returns fagsak
every { brevsignaturService.lagSaksbehandlerSignatur(any(), any()) } returns SignaturDto("Saksbehandler", ENHET_NAY, false)
every { brevClient.genererHtml(any(), any(), any(), any(), any()) } returns html
every { vedtaksbrevRepository.existsById(any()) } returns false
every { vedtaksbrevRepository.insert(capture(vedtaksbrevSlot)) } returns vedtaksbrev
Expand All @@ -319,7 +317,6 @@ internal class VedtaksbrevServiceTest {
every { fagsakService.hentFagsak(any()) } returns fagsak
every { vedtaksbrevRepository.existsById(any()) } returns true
every { vedtaksbrevRepository.update(capture(vedtaksbrevSlot)) } answers { firstArg() }
every { brevsignaturService.lagSaksbehandlerSignatur(any(), any()) } returns SignaturDto("Saksbehandler", ENHET_NAY, false)
every { brevClient.genererHtml(any(), any(), any(), any(), any()) } returns "html"
every { familieDokumentClient.genererPdfFraHtml(any()) } returns "123".toByteArray()
every { tilordnetRessursService.tilordnetRessursErInnloggetSaksbehandler(any()) } returns true
Expand All @@ -332,4 +329,9 @@ internal class VedtaksbrevServiceTest {
)
assertThat(vedtaksbrevSlot.captured.opprettetTid).isAfterOrEqualTo(now)
}

private fun signaturDto(
navn: String,
enhet: String? = ENHET_NAY,
) = SignaturDto(navn, ENHET_NAY, false)
}

0 comments on commit 67d04c9

Please sign in to comment.