Skip to content

Commit

Permalink
chore: added method for getFerdigstiltSm and a hasAccess method
Browse files Browse the repository at this point in the history
Co-authored-by: Andreas <danduras@gmail.com>
  • Loading branch information
jaflaten and andreasDev committed Dec 6, 2024
1 parent 54b0135 commit 5ec946a
Show file tree
Hide file tree
Showing 3 changed files with 43 additions and 22 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -130,8 +130,26 @@ class NasjonalOppgaveService(
oppgaveClient.ferdigstillNasjonalOppgave(oppgaveId, ferdigstillRegistrering.sykmeldingId, ferdigstillRegistrering, loggingMeta)
}

fun getVeilederIdent(): String {
return nasjonalCommonService.getNavIdent().veilederIdent
fun getOppgaveBySykmeldingId(sykmeldingId: String, authorization: String): NasjonalManuellOppgaveDAO? {
val sykmelding = findBySykmeldingId(sykmeldingId)

if (sykmelding != null) {
log.info("papirsykmelding: henter sykmelding med id $sykmeldingId fra syk-dig-db")
securelog.info("hentet nasjonalOppgave fra db $sykmelding")
return sykmelding
}
log.info("papirsykmelding: henter ferdigstilt sykmelding med id $sykmeldingId gjennom syk-dig proxy")
val ferdigstiltSykmeldingRequest = smregistreringClient.getFerdigstiltSykmeldingRequest(authorization, sykmeldingId)
val papirManuellOppgave = ferdigstiltSykmeldingRequest.body
if (papirManuellOppgave != null) {
securelog.info("lagrer nasjonalOppgave i db $papirManuellOppgave")
val lagretOppgave = lagreOppgave(papirManuellOppgave, ferdigstilt = true)
return lagretOppgave
}
log.info(
"Fant ingen ferdigstilte sykmeldinger med sykmeldingId $sykmeldingId",
)
return null
}

fun getOppgave(oppgaveId: String, authorization: String): NasjonalManuellOppgaveDAO? {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
package no.nav.sykdig.digitalisering.papirsykmelding.api

import net.logstash.logback.argument.StructuredArguments
import no.nav.sykdig.applog
import no.nav.sykdig.digitalisering.helsenett.SykmelderService
import no.nav.sykdig.digitalisering.papirsykmelding.NasjonalCommonService
import no.nav.sykdig.digitalisering.papirsykmelding.NasjonalOppgaveService
import no.nav.sykdig.digitalisering.papirsykmelding.NasjonalSykmeldingService
import no.nav.sykdig.digitalisering.papirsykmelding.api.model.PapirManuellOppgave
Expand Down Expand Up @@ -35,6 +35,7 @@ class NasjonalOppgaveController(
private val sykmelderService: SykmelderService,
private val personService: PersonService,
private val nasjonalSykmeldingService: NasjonalSykmeldingService,
private val nasjonalCommonService: NasjonalCommonService,
) {
val log = applog()
val securelog = securelog()
Expand Down Expand Up @@ -123,25 +124,14 @@ class NasjonalOppgaveController(
@PathVariable sykmeldingId: String,
@RequestHeader("Authorization") authorization: String,
): ResponseEntity<PapirManuellOppgave> {
val sykmelding = nasjonalOppgaveService.findBySykmeldingId(sykmeldingId)

if (sykmelding != null) {
log.info("papirsykmelding: henter sykmelding med id $sykmeldingId fra syk-dig-db")
securelog.info("hentert nasjonalOppgave fra db $sykmelding")
return ResponseEntity.ok(nasjonalOppgaveService.mapFromDao(sykmelding))
}
log.info("papirsykmelding: henter ferdigstilt sykmelding med id $sykmeldingId gjennom syk-dig proxy")
val ferdigstiltSykmeldingRequest = smregistreringClient.getFerdigstiltSykmeldingRequest(authorization, sykmeldingId)
val papirManuellOppgave = ferdigstiltSykmeldingRequest.body
if (papirManuellOppgave != null) {
securelog.info("lagrer nasjonalOppgave i db $papirManuellOppgave")
nasjonalOppgaveService.lagreOppgave(papirManuellOppgave, ferdigstilt = true)
return ferdigstiltSykmeldingRequest
val oppgave = nasjonalOppgaveService.getOppgaveBySykmeldingId(sykmeldingId, authorization)
if (oppgave != null) {
if(!oppgave.ferdigstilt) {
log.info("Oppgave med id $sykmeldingId er ikke ferdigstilt")
return ResponseEntity.status(HttpStatus.NOT_FOUND).build()
}
return ResponseEntity.ok(nasjonalOppgaveService.mapFromDao(oppgave))
}
log.info(
"Fant ingen ferdigstilte sykmeldinger med sykmeldingId {}",
StructuredArguments.keyValue("sykmeldingId", sykmeldingId),
)
return ResponseEntity.notFound().build()
}

Expand Down Expand Up @@ -170,7 +160,7 @@ class NasjonalOppgaveController(
nasjonalOppgaveService.oppdaterOppgave(
sykmeldingId = sykmeldingId,
utfall = Utfall.OK.toString(),
ferdigstiltAv = nasjonalOppgaveService.getVeilederIdent(),
ferdigstiltAv = nasjonalCommonService.getNavIdent().veilederIdent,
avvisningsgrunn = null,
smRegistreringManuell = papirSykmelding,
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,19 @@ class OppgaveSecurityService(
return false
}

//TODO fix this
fun hasAccessToSykmelding(sykmeldingId: String, authorization: String): Boolean {
securelog.info("sjekker om bruker har tilgang på sykmelding $sykmeldingId")
val oppgave = nasjonalOppgaveService.findBySykmeldingId(sykmeldingId)
val navEmail = nasjonalCommonService.getNavEmail()
val fnr = oppgave?.fnr
if (oppgave != null && fnr != null) {
val tilgang = hasAccess(fnr, navEmail)
securelog.info("Innlogget bruker: $navEmail har${if (!tilgang) " ikke" else ""} tilgang til oppgave med id $sykmeldingId")
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 5ec946a

Please sign in to comment.