From 705121dadd38d1961e0f2c678e9901003fc67984 Mon Sep 17 00:00:00 2001 From: Henri Ruoho Date: Wed, 3 Jan 2024 13:44:46 +0200 Subject: [PATCH] =?UTF-8?q?Lis=C3=A4=C3=A4=20testi=20palveluv=C3=A4yl?= =?UTF-8?q?=C3=A4k=C3=A4ytt=C3=A4jille?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fi/oph/koski/koskiuser/MockUsers.scala | 23 +++++++++--- .../MockOrganisaatioRepository.scala | 2 ++ .../mydata/MyDataAPIProxyServletTest.scala | 35 +++++++++++++++++++ 3 files changed, 56 insertions(+), 4 deletions(-) diff --git a/src/main/scala/fi/oph/koski/koskiuser/MockUsers.scala b/src/main/scala/fi/oph/koski/koskiuser/MockUsers.scala index 37ce9849a06..18bdd3df7ac 100644 --- a/src/main/scala/fi/oph/koski/koskiuser/MockUsers.scala +++ b/src/main/scala/fi/oph/koski/koskiuser/MockUsers.scala @@ -396,11 +396,25 @@ object MockUsers { ))) ) + val hslKäyttäjä = KoskiMockUser( + "Palveluväylä", + "HSL", + "1.2.246.562.24.99999988899", + Seq(OrganisaatioJaKäyttöoikeudet(MockOrganisaatiot.hsl, List( + PalveluJaOikeus("KOSKI", Rooli.HSL), + PalveluJaOikeus("KOSKI", Rooli.GLOBAALI_LUKU_PERUSOPETUS), + PalveluJaOikeus("KOSKI", Rooli.GLOBAALI_LUKU_TOINEN_ASTE), + PalveluJaOikeus("KOSKI", Rooli.GLOBAALI_LUKU_KORKEAKOULU), + PalveluJaOikeus("KOSKI", Rooli.GLOBAALI_LUKU_MUU_KUIN_SAANNELTY), + PalveluJaOikeus("KOSKI", Rooli.GLOBAALI_LUKU_TAITEENPERUSOPETUS), + ))) + ) + val suomiFiKäyttäjä = KoskiMockUser( - "Suomi", - "Fi", - "1.2.246.562.24.99999988889", - Seq(OrganisaatioJaKäyttöoikeudet(MockOrganisaatiot.migri, List( + "Palveluväylä", + "SuomiFi", + "1.2.246.562.24.99999988999", + Seq(OrganisaatioJaKäyttöoikeudet(MockOrganisaatiot.suomifi, List( PalveluJaOikeus("KOSKI", Rooli.SUOMIFI), PalveluJaOikeus("KOSKI", Rooli.GLOBAALI_LUKU_PERUSOPETUS), PalveluJaOikeus("KOSKI", Rooli.GLOBAALI_LUKU_TOINEN_ASTE), @@ -537,6 +551,7 @@ object MockUsers { korkeakouluViranomainen, migriKäyttäjä, suomiFiKäyttäjä, + hslKäyttäjä, tilastokeskusKäyttäjä, valviraKäyttäjä, esiopetusTallentaja, diff --git a/src/main/scala/fi/oph/koski/organisaatio/MockOrganisaatioRepository.scala b/src/main/scala/fi/oph/koski/organisaatio/MockOrganisaatioRepository.scala index d340af2ac0d..58f5b5b6df4 100644 --- a/src/main/scala/fi/oph/koski/organisaatio/MockOrganisaatioRepository.scala +++ b/src/main/scala/fi/oph/koski/organisaatio/MockOrganisaatioRepository.scala @@ -60,6 +60,8 @@ object MockOrganisaatiot { val tilastokeskus = "1.2.246.562.10.35939310928" val migri = "1.2.246.562.10.31453145314" val valvira = "1.2.246.562.10.52577249361" + val hsl = "1.2.246.562.10.31453145314" + val suomifi = "1.2.246.562.10.31453145314" val kuopionAikuislukio = "1.2.246.562.10.42923230215" val kallavedenLukio = "1.2.246.562.10.63813695861" object EuropeanSchoolOfHelsinki { diff --git a/src/test/scala/fi/oph/koski/mydata/MyDataAPIProxyServletTest.scala b/src/test/scala/fi/oph/koski/mydata/MyDataAPIProxyServletTest.scala index d0379f7eae3..2f1f0d8ce67 100644 --- a/src/test/scala/fi/oph/koski/mydata/MyDataAPIProxyServletTest.scala +++ b/src/test/scala/fi/oph/koski/mydata/MyDataAPIProxyServletTest.scala @@ -88,6 +88,41 @@ class MyDataAPIProxyServletTest extends AnyFreeSpec with KoskiHttpSpec with Matc } }) } + + "Palauttaa 200 mikäli HSL tai SUOMIFI" in { + KoskiApplicationForTests.mydataRepository.create(opiskelija.oid, memberId) + + val palveluväyläKäyttäjät = List( + MockUsers.suomiFiKäyttäjä, + MockUsers.hslKäyttäjä + ) + + palveluväyläKäyttäjät.map(user => { + requestOpintoOikeudetWithoutAuthHeaders(opiskelija.hetu.get, memberHeaders(memberCode) ++ authHeaders(user)) { + status should equal(200) + } + }) + } + + "Palauttaa 403 mikäli ei palveluväyläkäyttäjä" in { + KoskiApplicationForTests.mydataRepository.create(opiskelija.oid, memberId) + + val luovutuspalveluKäyttäjät = List( + MockUsers.ytlKäyttäjä, + MockUsers.valviraKäyttäjä, + MockUsers.kelaLaajatOikeudet, + MockUsers.kelaSuppeatOikeudet, + MockUsers.migriKäyttäjä, + MockUsers.tilastokeskusKäyttäjä + ) + + luovutuspalveluKäyttäjät.map(user => { + requestOpintoOikeudetWithoutAuthHeaders(opiskelija.hetu.get, memberHeaders(memberCode) ++ authHeaders(user)) { + status should equal(403) + body should include("Sallittu vain palveluväyläkäyttäjälle") + } + }) + } } def memberHeaders(memberCode: String) = Map("X-ROAD-MEMBER" -> memberCode)