Skip to content

Commit

Permalink
fix: access to nasjonal oppgave
Browse files Browse the repository at this point in the history
Co-authored-by: Natalie Uranes <[email protected]>
Co-authored-by: Jørn-Are Flaten <[email protected]>
  • Loading branch information
3 people committed Nov 21, 2024
1 parent e721a89 commit a2ae254
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@ class NasjonalOppgaveController(
}

@PostMapping("/oppgave/{oppgaveId}/send")
@PreAuthorize("@oppgaveSecurityService.hasAccessToOppgave(#oppgaveId)")
@PreAuthorize("@oppgaveSecurityService.hasAccessToNasjonalOppgave(#oppgaveId)")
@ResponseBody
suspend fun sendOppgave(
@PathVariable oppgaveId: Int,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import no.nav.sykdig.auditLogger.AuditLogger
import no.nav.sykdig.auditlog
import no.nav.sykdig.digitalisering.SykDigOppgaveService
import no.nav.sykdig.digitalisering.papirsykmelding.api.model.Veileder
import no.nav.sykdig.digitalisering.papirsykmelding.db.NasjonalOppgaveRepository
import no.nav.sykdig.digitalisering.pdl.PersonService
import no.nav.sykdig.digitalisering.saf.SafJournalpostGraphQlClient
import no.nav.sykdig.digitalisering.saf.graphql.Type
Expand All @@ -22,6 +23,7 @@ class OppgaveSecurityService(
private val sykDigOppgaveService: SykDigOppgaveService,
private val safGraphQlClient: SafJournalpostGraphQlClient,
private val personService: PersonService,
private val nasjoalOppgaveRepository: NasjonalOppgaveRepository,
) {
companion object {
private val securelog = securelog()
Expand All @@ -37,6 +39,19 @@ class OppgaveSecurityService(
return tilgang
}

fun hasAccessToNasjonalOppgave(oppgaveId: String): Boolean {
securelog.info("sjekker om bruker har tilgang på oppgave $oppgaveId")
val oppgave = nasjoalOppgaveRepository.findByOppgaveId(oppgaveId.toInt())
val navEmail = getNavEmail()
val fnr = oppgave.get().fnr
if (oppgave.isPresent && fnr != null ) {
val tilgang = hasAccess(fnr, navEmail)
securelog.info("Innlogget bruker: $navEmail har${ if (!tilgang) " ikke" else ""} tilgang til oppgave med id $oppgaveId")
return tilgang
}
return false
}

fun hasAccessToSykmelding(sykmeldingId: String): Boolean {
securelog.info("sjekker om bruker har tilgang på sykmelding $sykmeldingId")
val oppgave = sykDigOppgaveService.getOppgaveFromSykmeldingId(sykmeldingId)
Expand Down

0 comments on commit a2ae254

Please sign in to comment.