Skip to content

Commit e117db3

Browse files
committed
Lagt til tilgang for at system skal kunne gjøre forhåndsgodkjenning i inngang
1 parent 64ca364 commit e117db3

19 files changed

+390
-26
lines changed

apps/api-start-stopp-perioder/src/main/kotlin/no/nav/paw/arbeidssokerregisteret/application/regler/ValideringsRegler.kt

+4-3
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,10 @@ object ValideringsRegler : Regler {
1515
AuthOpplysning.AnsattTilgang,
1616
vedTreff = ::grunnlagForGodkjenning
1717
),
18-
IkkeAnsattOgForhaandsgodkjentAvAnsatt(
18+
IkkeAnsattOgIkkeSystemOgForhaandsgodkjent(
1919
DomeneOpplysning.ErForhaandsgodkjent,
2020
AuthOpplysning.IkkeAnsatt,
21+
AuthOpplysning.IkkeSystem,
2122
vedTreff = ::skalAvises
2223
),
2324
IkkeAnsattOgIkkeSystemOgFeilretting(
@@ -77,8 +78,8 @@ data object EndreEgenBruker : ValideringsRegelId {
7778
override val beskrivelse: String = "Bruker prøver å endre for seg selv"
7879
}
7980

80-
data object IkkeAnsattOgForhaandsgodkjentAvAnsatt : ValideringsRegelId {
81-
override val beskrivelse: String = "Ikke ansatt har satt forhaandsgodkjenningAvVeileder"
81+
data object IkkeAnsattOgIkkeSystemOgForhaandsgodkjent : ValideringsRegelId {
82+
override val beskrivelse: String = "Ikke ansatt eller system har satt forhaandsgodkjenningAvVeileder"
8283
}
8384

8485
data object IkkeAnsattOgIkkeSystemOgFeilretting : ValideringsRegelId {

apps/api-start-stopp-perioder/src/main/kotlin/no/nav/paw/arbeidssokerregisteret/routes/StartStoppResultatMapping.kt

+2-2
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ import no.nav.paw.arbeidssokerregisteret.application.regler.ValideringsRegelId
3232
import no.nav.paw.arbeidssokerregisteret.application.regler.EndreEgenBruker
3333
import no.nav.paw.arbeidssokerregisteret.application.regler.EndreForAnnenBruker
3434
import no.nav.paw.arbeidssokerregisteret.application.regler.IkkeAnsattOgIkkeSystemOgFeilretting
35-
import no.nav.paw.arbeidssokerregisteret.application.regler.IkkeAnsattOgForhaandsgodkjentAvAnsatt
35+
import no.nav.paw.arbeidssokerregisteret.application.regler.IkkeAnsattOgIkkeSystemOgForhaandsgodkjent
3636
import no.nav.paw.arbeidssokerregisteret.application.regler.IkkeTilgang
3737
import no.nav.paw.arbeidssokerregisteret.application.regler.SystemHarIkkeTilgangTilBruker
3838
import no.nav.paw.arbeidssokerregisteret.application.regler.SystemHarTilgangTilBruker
@@ -164,7 +164,7 @@ fun ValideringsRegelId.httpCode(): HttpStatusCode = when (this) {
164164
EndreEgenBruker -> HttpStatusCode.OK
165165
AnsattIkkeTilgangTilBruker -> HttpStatusCode.Forbidden
166166
EndreForAnnenBruker -> HttpStatusCode.Forbidden
167-
IkkeAnsattOgForhaandsgodkjentAvAnsatt -> HttpStatusCode.BadRequest
167+
IkkeAnsattOgIkkeSystemOgForhaandsgodkjent -> HttpStatusCode.BadRequest
168168
IkkeTilgang -> HttpStatusCode.Forbidden
169169
IkkeAnsattOgIkkeSystemOgFeilretting -> HttpStatusCode.Forbidden
170170
UgyldigFeilretting -> HttpStatusCode.BadRequest
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
uri = "http://localhost:8090/api/v1/tilgang"
2+
scope = "api://local.paw.paw-arbeidssokerregisteret-api-inngang/.default"

apps/api-start-stopp-perioder/src/test/kotlin/no/nav/paw/arbeidssokerregisteret/InngangSomBrukerTest.kt

+2-2
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ import io.mockk.coVerify
1717
import io.mockk.mockk
1818
import no.nav.paw.arbeidssoekerregisteret.api.startstopp.models.ApiV2ArbeidssokerPeriodePutRequest
1919
import no.nav.paw.arbeidssokerregisteret.application.*
20-
import no.nav.paw.arbeidssokerregisteret.application.regler.IkkeAnsattOgForhaandsgodkjentAvAnsatt
20+
import no.nav.paw.arbeidssokerregisteret.application.regler.IkkeAnsattOgIkkeSystemOgForhaandsgodkjent
2121
import no.nav.paw.arbeidssokerregisteret.auth.configureAuthentication
2222
import no.nav.paw.arbeidssokerregisteret.domain.Identitetsnummer
2323
import no.nav.paw.arbeidssokerregisteret.plugins.configureHTTP
@@ -101,7 +101,7 @@ class InngangSomBrukerTest : FreeSpec({
101101
startStoppRequestHandler.startArbeidssokerperiode(any(), any(), any(), any())
102102
} returns skalAvises(
103103
regel = Regel(
104-
id = IkkeAnsattOgForhaandsgodkjentAvAnsatt,
104+
id = IkkeAnsattOgIkkeSystemOgForhaandsgodkjent,
105105
kritierier = emptyList(),
106106
vedTreff = ::skalAvises
107107
),

apps/api-start-stopp-perioder/src/test/kotlin/no/nav/paw/arbeidssokerregisteret/TilgansReglerTest.kt

+40-11
Original file line numberDiff line numberDiff line change
@@ -5,34 +5,63 @@ import io.kotest.core.spec.style.FreeSpec
55
import io.kotest.matchers.collections.shouldContainAll
66
import io.kotest.matchers.shouldBe
77
import io.kotest.matchers.types.shouldBeInstanceOf
8-
import no.nav.paw.arbeidssokerregisteret.application.*
9-
import no.nav.paw.arbeidssokerregisteret.application.authfaktka.AuthOpplysning.AnsattTilgang
10-
import no.nav.paw.arbeidssokerregisteret.application.authfaktka.AuthOpplysning.IkkeAnsatt
8+
import no.nav.paw.arbeidssokerregisteret.application.GrunnlagForGodkjenning
9+
import no.nav.paw.arbeidssokerregisteret.application.Problem
10+
import no.nav.paw.arbeidssokerregisteret.application.authfaktka.AuthOpplysning
11+
import no.nav.paw.arbeidssokerregisteret.application.evaluer
1112
import no.nav.paw.arbeidssokerregisteret.application.opplysninger.DomeneOpplysning
12-
import no.nav.paw.arbeidssokerregisteret.application.regler.*
13+
import no.nav.paw.arbeidssokerregisteret.application.regler.AnsattHarTilgangTilBruker
14+
import no.nav.paw.arbeidssokerregisteret.application.regler.IkkeAnsattOgIkkeSystemOgForhaandsgodkjent
15+
import no.nav.paw.arbeidssokerregisteret.application.regler.SystemHarTilgangTilBruker
16+
import no.nav.paw.arbeidssokerregisteret.application.regler.ValideringsRegler
1317
import no.nav.paw.collections.PawNonEmptyList
1418

1519
class TilgansReglerTest : FreeSpec({
1620
"eval av tilgang skal gi" - {
17-
"ugydlig request ved IKKE_ANSATT kombinert med GODKJENT_AV_ANSATT" {
21+
"ugydlig request ved IKKE_ANSATT og IKKE_SYSTEM kombinert med GODKJENT_AV_ANSATT" {
1822
val resultat = ValideringsRegler.evaluer(
1923
setOf(
20-
IkkeAnsatt,
24+
AuthOpplysning.IkkeAnsatt,
25+
AuthOpplysning.IkkeSystem,
2126
DomeneOpplysning.ErForhaandsgodkjent
2227
)
2328
).shouldBeInstanceOf<Either.Left<PawNonEmptyList<Problem>>>()
24-
resultat.value.first.regel.id shouldBe IkkeAnsattOgForhaandsgodkjentAvAnsatt
25-
resultat.value.first.opplysninger shouldContainAll listOf(IkkeAnsatt, DomeneOpplysning.ErForhaandsgodkjent)
29+
resultat.value.first.regel.id shouldBe IkkeAnsattOgIkkeSystemOgForhaandsgodkjent
30+
resultat.value.first.opplysninger shouldContainAll listOf(
31+
AuthOpplysning.IkkeAnsatt,
32+
AuthOpplysning.IkkeSystem,
33+
DomeneOpplysning.ErForhaandsgodkjent
34+
)
2635
}
27-
"lovlig kombinasjon av ANSATT og FORHANDSGODKJENT_AV_ANSATT" {
36+
"lovlig kombinasjon av ANSATT og IKKE_SYSTEM kombinert med FORHANDSGODKJENT_AV_ANSATT" {
2837
val resultat = ValideringsRegler.evaluer(
2938
setOf(
30-
AnsattTilgang,
39+
AuthOpplysning.AnsattTilgang,
40+
AuthOpplysning.IkkeSystem,
3141
DomeneOpplysning.ErForhaandsgodkjent
3242
)
3343
).shouldBeInstanceOf<Either.Right<GrunnlagForGodkjenning>>()
3444
resultat.value.regel.id shouldBe AnsattHarTilgangTilBruker
35-
resultat.value.opplysning shouldContainAll listOf(AnsattTilgang, DomeneOpplysning.ErForhaandsgodkjent)
45+
resultat.value.opplysning shouldContainAll listOf(
46+
AuthOpplysning.AnsattTilgang,
47+
AuthOpplysning.IkkeSystem,
48+
DomeneOpplysning.ErForhaandsgodkjent
49+
)
50+
}
51+
"lovlig kombinasjon av IKKE_ANSATT og SYSTEM kombinert med FORHANDSGODKJENT_AV_ANSATT" {
52+
val resultat = ValideringsRegler.evaluer(
53+
setOf(
54+
AuthOpplysning.IkkeAnsatt,
55+
AuthOpplysning.SystemTilgang,
56+
DomeneOpplysning.ErForhaandsgodkjent
57+
)
58+
).shouldBeInstanceOf<Either.Right<GrunnlagForGodkjenning>>()
59+
resultat.value.regel.id shouldBe SystemHarTilgangTilBruker
60+
resultat.value.opplysning shouldContainAll listOf(
61+
AuthOpplysning.IkkeAnsatt,
62+
AuthOpplysning.SystemTilgang,
63+
DomeneOpplysning.ErForhaandsgodkjent
64+
)
3665
}
3766
}
3867
}

apps/api-start-stopp-perioder/src/test/kotlin/no/nav/paw/arbeidssokerregisteret/application/RequestValidatorTest.kt

+2-2
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ import no.nav.paw.arbeidssokerregisteret.application.authfaktka.AuthOpplysning.A
1515
import no.nav.paw.arbeidssokerregisteret.application.authfaktka.AuthOpplysning.AnsattTilgang
1616
import no.nav.paw.arbeidssokerregisteret.application.authfaktka.AuthOpplysning.IkkeAnsatt
1717
import no.nav.paw.arbeidssokerregisteret.application.opplysninger.*
18-
import no.nav.paw.arbeidssokerregisteret.application.regler.IkkeAnsattOgForhaandsgodkjentAvAnsatt
18+
import no.nav.paw.arbeidssokerregisteret.application.regler.IkkeAnsattOgIkkeSystemOgForhaandsgodkjent
1919
import no.nav.paw.arbeidssokerregisteret.domain.Identitetsnummer
2020
import no.nav.paw.arbeidssokerregisteret.services.AutorisasjonService
2121
import no.nav.paw.arbeidssokerregisteret.services.PersonInfoService
@@ -97,7 +97,7 @@ class RequestValidatorTest : FreeSpec({
9797
.shouldBeInstanceOf<Either.Left<PawNonEmptyList<Problem>>>()
9898
tilgangskontrollresultat.value.first.opplysninger shouldContain IkkeAnsatt
9999
tilgangskontrollresultat.value.first.opplysninger shouldContain DomeneOpplysning.ErForhaandsgodkjent
100-
tilgangskontrollresultat.value.first.regel.id.shouldBe(IkkeAnsattOgForhaandsgodkjentAvAnsatt)
100+
tilgangskontrollresultat.value.first.regel.id.shouldBe(IkkeAnsattOgIkkeSystemOgForhaandsgodkjent)
101101
}
102102
}
103103

docker/mocks/config/wiremock/pdl-hentPerson-01017012345.json

+2-2
Original file line numberDiff line numberDiff line change
@@ -47,8 +47,8 @@
4747
],
4848
"bostedsadresse": [
4949
{
50-
"angittFlyttedato": "2010-01-20",
51-
"gyldigFraOgMed": "2010-01-20",
50+
"angittFlyttedato": "2010-01-01",
51+
"gyldigFraOgMed": "2010-01-01",
5252
"vegadresse": {
5353
"kommunenummer": "9107"
5454
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
{
2+
"request": {
3+
"method": "POST",
4+
"urlPathPattern": "/pdl/person",
5+
"bodyPatterns": [
6+
{
7+
"matchesJsonPath": "$.variables[?(@.ident == '02017012345')]"
8+
}
9+
]
10+
},
11+
"response": {
12+
"status": 200,
13+
"headers": {
14+
"Content-Type": "application/graphql-response+json"
15+
},
16+
"jsonBody": {
17+
"data": {
18+
"hentPerson": {
19+
"foedselsdato": [
20+
{
21+
"foedselsdato": "1970-01-02",
22+
"foedselsaar": "1970"
23+
}
24+
],
25+
"foedested": [
26+
{
27+
"foedeland": "NOR",
28+
"foedested": "Strupen"
29+
}
30+
],
31+
"statsborgerskap": [
32+
{
33+
"land": "NOR",
34+
"metadata": {
35+
"endringer": []
36+
}
37+
}
38+
],
39+
"opphold": [],
40+
"folkeregisterpersonstatus": [
41+
{
42+
"forenkletStatus": "bosattEtterFolkeregisterloven",
43+
"metadata": {
44+
"endringer": []
45+
}
46+
}
47+
],
48+
"bostedsadresse": [
49+
{
50+
"angittFlyttedato": "2010-01-02",
51+
"gyldigFraOgMed": "2010-01-02",
52+
"vegadresse": {
53+
"kommunenummer": "9107"
54+
}
55+
}
56+
],
57+
"innflyttingTilNorge": [],
58+
"utflyttingFraNorge": []
59+
}
60+
}
61+
}
62+
}
63+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
{
2+
"request": {
3+
"method": "POST",
4+
"urlPathPattern": "/pdl/person",
5+
"bodyPatterns": [
6+
{
7+
"matchesJsonPath": "$.variables[?(@.ident == '03017012345')]"
8+
}
9+
]
10+
},
11+
"response": {
12+
"status": 200,
13+
"headers": {
14+
"Content-Type": "application/graphql-response+json"
15+
},
16+
"jsonBody": {
17+
"data": {
18+
"hentPerson": {
19+
"foedselsdato": [
20+
{
21+
"foedselsdato": "1970-01-03",
22+
"foedselsaar": "1970"
23+
}
24+
],
25+
"foedested": [
26+
{
27+
"foedeland": "NOR",
28+
"foedested": "Strupen"
29+
}
30+
],
31+
"statsborgerskap": [
32+
{
33+
"land": "NOR",
34+
"metadata": {
35+
"endringer": []
36+
}
37+
}
38+
],
39+
"opphold": [],
40+
"folkeregisterpersonstatus": [
41+
{
42+
"forenkletStatus": "bosattEtterFolkeregisterloven",
43+
"metadata": {
44+
"endringer": []
45+
}
46+
}
47+
],
48+
"bostedsadresse": [
49+
{
50+
"angittFlyttedato": "2010-01-03",
51+
"gyldigFraOgMed": "2010-01-03",
52+
"vegadresse": {
53+
"kommunenummer": "9107"
54+
}
55+
}
56+
],
57+
"innflyttingTilNorge": [],
58+
"utflyttingFraNorge": []
59+
}
60+
}
61+
}
62+
}
63+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
{
2+
"request": {
3+
"method": "POST",
4+
"urlPathPattern": "/pdl/person",
5+
"bodyPatterns": [
6+
{
7+
"matchesJsonPath": "$.variables[?(@.ident == '04017012345')]"
8+
}
9+
]
10+
},
11+
"response": {
12+
"status": 200,
13+
"headers": {
14+
"Content-Type": "application/graphql-response+json"
15+
},
16+
"jsonBody": {
17+
"data": {
18+
"hentPerson": {
19+
"foedselsdato": [
20+
{
21+
"foedselsdato": "1970-01-04",
22+
"foedselsaar": "1970"
23+
}
24+
],
25+
"foedested": [
26+
{
27+
"foedeland": "NOR",
28+
"foedested": "Strupen"
29+
}
30+
],
31+
"statsborgerskap": [
32+
{
33+
"land": "NOR",
34+
"metadata": {
35+
"endringer": []
36+
}
37+
}
38+
],
39+
"opphold": [],
40+
"folkeregisterpersonstatus": [
41+
{
42+
"forenkletStatus": "bosattEtterFolkeregisterloven",
43+
"metadata": {
44+
"endringer": []
45+
}
46+
}
47+
],
48+
"bostedsadresse": [
49+
{
50+
"angittFlyttedato": "2010-01-04",
51+
"gyldigFraOgMed": "2010-01-04",
52+
"vegadresse": {
53+
"kommunenummer": "9107"
54+
}
55+
}
56+
],
57+
"innflyttingTilNorge": [],
58+
"utflyttingFraNorge": []
59+
}
60+
}
61+
}
62+
}
63+
}

0 commit comments

Comments
 (0)