diff --git a/behovsmeldingsmodell/build.gradle.kts b/behovsmeldingsmodell/build.gradle.kts index 7bbb571..284a195 100644 --- a/behovsmeldingsmodell/build.gradle.kts +++ b/behovsmeldingsmodell/build.gradle.kts @@ -7,6 +7,14 @@ group = "no.nav.hjelpemidler" version = System.getenv("VERSION_TAG") ?: "local" dependencies { + /* + TODO: Det tryggeste er å ha denne avhengigheten her, slik at vi kan sikre at den alltid blir brukt, + men samtidig vi vil helst ikke ha ekstra avhengigheter her. Kan vi gjøre det på en bedre måte? + */ + // TODO: legg til i hm-katalog + // OWASP + implementation("com.googlecode.owasp-java-html-sanitizer:owasp-java-html-sanitizer:20240325.1") + testImplementation(libs.kotlin.test.junit5) testImplementation(libs.bundles.jackson) } diff --git a/behovsmeldingsmodell/src/main/kotlin/no/nav/hjelpemidler/behovsmeldingsmodell/v2/Formidlerbehovsmelding.kt b/behovsmeldingsmodell/src/main/kotlin/no/nav/hjelpemidler/behovsmeldingsmodell/v2/Formidlerbehovsmelding.kt index 4dabc0e..d98c890 100644 --- a/behovsmeldingsmodell/src/main/kotlin/no/nav/hjelpemidler/behovsmeldingsmodell/v2/Formidlerbehovsmelding.kt +++ b/behovsmeldingsmodell/src/main/kotlin/no/nav/hjelpemidler/behovsmeldingsmodell/v2/Formidlerbehovsmelding.kt @@ -19,6 +19,7 @@ import no.nav.hjelpemidler.behovsmeldingsmodell.Veiadresse import no.nav.hjelpemidler.behovsmeldingsmodell.v1.Bytte import no.nav.hjelpemidler.behovsmeldingsmodell.v1.Godkjenningskurs import no.nav.hjelpemidler.behovsmeldingsmodell.v1.Hast +import org.owasp.html.HtmlPolicyBuilder import java.time.LocalDate import java.util.UUID @@ -160,16 +161,23 @@ data class Tekst( init { require( (i18n != null && fritekst == null) || - (i18n == null && fritekst != null), + (i18n == null && fritekst != null), ) { "Én, og bare én, av i18n eller fritekst må ha verdi. Mottok i18n <$i18n> og fritekst <$fritekst>" } } } +private val htmlPolicy = HtmlPolicyBuilder().allowElements("em", "strong").toFactory() + data class I18n( val nb: String, val nn: String, ) { constructor(norsk: String) : this(nb = norsk, nn = norsk) // For enkle tekster som er like på begge målformer + + init { + require(nb == htmlPolicy.sanitize(nb)) { "Ugyldig HTML i nb" } + require(nn == htmlPolicy.sanitize(nn)) { "Ugyldig HTML i nn" } + } } data class Varsel( diff --git a/behovsmeldingsmodell/src/main/kotlin/no/nav/hjelpemidler/behovsmeldingsmodell/v2/mapping/FormidlerbehovsmeldingMapper.kt b/behovsmeldingsmodell/src/main/kotlin/no/nav/hjelpemidler/behovsmeldingsmodell/v2/mapping/FormidlerbehovsmeldingMapper.kt index 9c7bded..332a706 100644 --- a/behovsmeldingsmodell/src/main/kotlin/no/nav/hjelpemidler/behovsmeldingsmodell/v2/mapping/FormidlerbehovsmeldingMapper.kt +++ b/behovsmeldingsmodell/src/main/kotlin/no/nav/hjelpemidler/behovsmeldingsmodell/v2/mapping/FormidlerbehovsmeldingMapper.kt @@ -186,17 +186,6 @@ fun varsler(hm: Hjelpemiddel): List { ) } - if (hm.sengInfo?.påkrevdBehov == BehovForSeng.DYSFUNKSJONELT_SØVNMØNSTER) { - varsler.add( - Varsel( - I18n( - nb = "Med dysfunksjonelt søvnmønster menes: Varige og vesentlige problemer med å sovne, urolig nattesøvn, meget tidlig oppvåkning om morgenen og/eller dårlig søvnkvalitet som fører til nedsatt funksjon på dagtid. Den nedsatte funksjonen på dagtid må føre til problemer med å utføre dagliglivets nødvendige aktiviteter.", - nn = "Med dysfunksjonelt søvnmønster siktar ein til: Varige og vesentlege problem med å sovna, uroleg nattesøvn, svært tidleg oppvakning om morgonen og/eller dårleg søvnkvalitet som fører til nedsett funksjon på dagtid. Den nedsette funksjonen på dagtid må føra til problem med å utføra dei nødvendige aktivitetane til dagleglivet." - ), Varseltype.INFO - ) - ) - } - if (hm.posisjoneringsputeForBarnInfo?.brukerErOver26År == true) { varsler.add(Varsel(over26År, Varseltype.WARNING)) } @@ -839,8 +828,10 @@ fun sengeinfo(hm: Hjelpemiddel): List { val tekst = if (hm.sengInfo.brukerOppfyllerPåkrevdBehov == true) { Tekst( - nb = "Barnet har en varig funksjonsnedsettelse som gir et dysfunksjonelt søvnmønster slik at barnet får for lite søvn. Dette fører til at barnet får nedsatt funksjonsevne på dagtid.", - nn = "Barnet har ei varig funksjonsnedsetjing som gir eit dysfunksjonelt søvnmønster slik at barnet får for lite søvn. Dette fører til at barnet får nedsett funksjonsevne på dagtid.", + I18n( + nb = "Barnet har en varig funksjonsnedsettelse som gir et dysfunksjonelt søvnmønster slik at barnet får for lite søvn. Dette fører til at barnet får nedsatt funksjonsevne på dagtid.", + nn = "Barnet har ei varig funksjonsnedsetjing som gir eit dysfunksjonelt søvnmønster slik at barnet får for lite søvn. Dette fører til at barnet får nedsett funksjonsevne på dagtid.", + ), begrepsforklaring = dysfunksjoneltSøvnmønsterForklaring ) } else { Tekst( @@ -892,8 +883,10 @@ fun sengeinfo(hm: Hjelpemiddel): List { Opplysning( ledetekst = behovForSengLabel, tekst = Tekst( - nb = "Barnet har en varig funksjonsnedsettelse som gir et dysfunksjonelt søvnmønster slik at barnet får for lite søvn. Dette fører til at barnet får nedsatt funksjonsevne på dagtid.", - nn = "Barnet har ei varig funksjonsnedsetjing som gir eit dysfunksjonelt søvnmønster slik at barnet får for lite søvn. Dette fører til at barnet får nedset funksjonsevne på dagtid.", + I18n( + nb = "Barnet har en varig funksjonsnedsettelse som gir et dysfunksjonelt søvnmønster slik at barnet får for lite søvn. Dette fører til at barnet får nedsatt funksjonsevne på dagtid.", + nn = "Barnet har ei varig funksjonsnedsetjing som gir eit dysfunksjonelt søvnmønster slik at barnet får for lite søvn. Dette fører til at barnet får nedset funksjonsevne på dagtid.", + ), begrepsforklaring = dysfunksjoneltSøvnmønsterForklaring ), ), ) @@ -1407,3 +1400,7 @@ private val formidlerBekrefterAt = I18n(nb = "Formidler bekrefter at", nn = "For private val behov = I18n("Behov") private val bruksområde = I18n("Bruksområde") private val grunnenTilBehovet = I18n("Grunnen til behovet") +private val dysfunksjoneltSøvnmønsterForklaring = I18n( + nb = "Med dysfunksjonelt søvnmønster menes: Varige og vesentlige problemer med å sovne, urolig nattesøvn, meget tidlig oppvåkning om morgenen og/eller dårlig søvnkvalitet som fører til nedsatt funksjon på dagtid. Den nedsatte funksjonen på dagtid må føre til problemer med å utføre dagliglivets nødvendige aktiviteter.", + nn = "Med dysfunksjonelt søvnmønster siktar ein til: Varige og vesentlege problem med å sovna, uroleg nattesøvn, svært tidleg oppvakning om morgonen og/eller dårleg søvnkvalitet som fører til nedsett funksjon på dagtid. Den nedsette funksjonen på dagtid må føra til problem med å utføra dei nødvendige aktivitetane til dagleglivet." +) \ No newline at end of file