From 3660653f65ca7cd52196e74364bad0a3edde2f2f Mon Sep 17 00:00:00 2001 From: Marja Kari Date: Thu, 25 Jan 2024 17:06:00 +0200 Subject: [PATCH] =?UTF-8?q?siivottu=20turhia=20metodeita,=20draft=20l?= =?UTF-8?q?=C3=A4hetyksen=20hausta=20k=C3=A4ytt=C3=B6oikeusrajauksilla?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fi/oph/viestinvalitys/LocalUtil.scala | 105 ++++++--------- .../resource/LahetysResource.scala | 88 ------------ .../security/SecurityOperaatiot.scala | 1 + .../business/KantaOperaatiot.scala | 126 ++++++++---------- .../business/KantaOperaatiotTest.scala | 14 +- 5 files changed, 110 insertions(+), 224 deletions(-) diff --git a/integraatio/src/test/scala/fi/oph/viestinvalitys/LocalUtil.scala b/integraatio/src/test/scala/fi/oph/viestinvalitys/LocalUtil.scala index 329a7cc7..87938912 100644 --- a/integraatio/src/test/scala/fi/oph/viestinvalitys/LocalUtil.scala +++ b/integraatio/src/test/scala/fi/oph/viestinvalitys/LocalUtil.scala @@ -163,63 +163,59 @@ object LocalUtil { val kantaOperaatiot = new KantaOperaatiot(DbUtil.database) val lahetyksia = kantaOperaatiot.getLahetykset(Option.empty, Option.apply(20)) if(lahetyksia.isEmpty || lahetyksia.length < 3) { - // lähetyksiä joissa useita viestejä - /* - otsikko: String, - omistaja: String, lahettavaPalvelu: String, - lahettavanVirkailijanOID: Option[String], - lahettaja: Kontakti, - replyTo: Option[String], - prioriteetti: Prioriteetti, - sailytysAika: Int - */ - val lahetys = kantaOperaatiot.tallennaLahetys( - "Testiotsikko", - "omistaja", - "hakemuspalvelu", - Option.apply("0.1.2.3"), - Kontakti(Option.apply("Testi Virkailija"), "testi.virkailija@oph.fi"), - Option.apply("no-reply@opintopolku.fi"), - Prioriteetti.NORMAALI, - 365 - ) + // lähetyksiä joissa räätälöity viesti useilla vastaanottajilla + Range(0, 25).map(counter => { + val lahetys = kantaOperaatiot.tallennaLahetys( + "Testiotsikko "+counter, + "omistaja", + "hakemuspalvelu", + Option.apply("0.1.2.3"), + Kontakti(Option.apply("Testi Virkailija"+counter), "testi.virkailija@oph.fi"+counter), + Option.apply("no-reply@opintopolku.fi"), + Prioriteetti.NORMAALI, + 365 + ) + // viestit lähetystunnuksella + Range(0, 25).map(viestinro => { + kantaOperaatiot.tallennaViesti("Viestin testiotsikko " + viestinro, + "Viestin sisältö " + viestinro, + SisallonTyyppi.TEXT, + Set(Kieli.FI), + Map.empty, + Option.empty, + Option.empty, + Option.empty, + Seq(Kontakti(Option.apply("Vastaanottaja " + viestinro), "vastaanottaja" + viestinro + "@example.com")), + Seq.empty, + Option.empty, + Option.apply(lahetys.tunniste), + Option.empty, + Option.apply(365), + Set(SecurityConstants.SECURITY_ROOLI_KATSELU_FULL), + Map("avain" -> Seq("arvo")), + "omistaja") + }) + }) + // lähetys jossa samalla viestillä useita vastaanottajia val lahetys2 = kantaOperaatiot.tallennaLahetys( "Testiotsikko2", "omistaja", "hakemuspalvelu", Option.apply("0.1.2.3"), - Kontakti(Option.apply("Testi Virkailija"), "testi.virkailija@oph.fi"), + Kontakti(Option.apply("Joku Virkailija"), "joku.virkailija@oph.fi"), Option.apply("no-reply@opintopolku.fi"), Prioriteetti.NORMAALI, 365 ) - // viestit lähetystunnuksella - kantaOperaatiot.tallennaViesti("Viestin testiotsikko 1", - "Viestin sisältö", - SisallonTyyppi.TEXT, - Set(Kieli.FI), - Map.empty, - Option.empty, - Option.empty, - Option.empty, - Range(0, 25).map(suffix => Kontakti(Option.apply("Vastaanottaja" + suffix), "vastaanottaja" + suffix + "@example.com")), - Seq.empty, - Option.empty, - Option.apply(lahetys.tunniste), - Option.empty, - Option.apply(365), - Set(SecurityConstants.SECURITY_ROOLI_KATSELU_FULL), - Map("avain" -> Seq("arvo")), - "omistaja") - kantaOperaatiot.tallennaViesti("Viestin testiotsikko 2", - "Viestin sisältö", + kantaOperaatiot.tallennaViesti("Massaviestin testiotsikko", + "Massaviestin sisältö", SisallonTyyppi.TEXT, Set(Kieli.FI), Map.empty, // maskit Option.empty, // läh. oid Option.empty, // lähettäjä Option.empty, // replyto - Range(0, 3).map(suffix => Kontakti(Option.apply("Vastaanottaja" + suffix), "vastaanottaja" + suffix + "@example.com")), + Range(0, 20).map(suffix => Kontakti(Option.apply("Vastaanottaja" + suffix), "vastaanottaja" + suffix + "@example.com")), Seq.empty, Option.empty, Option.apply(lahetys2.tunniste), @@ -230,7 +226,7 @@ object LocalUtil { "omistaja") // tyhjä lähetys val lahetys3 = kantaOperaatiot.tallennaLahetys( - "Testiotsikko3", + "Orpo lähetys", "omistaja", "osoitepalvelu", Option.apply("0.1.2.3"), @@ -239,28 +235,9 @@ object LocalUtil { Prioriteetti.NORMAALI, 365 ) - /* - otsikko: String, - sisalto: String, - sisallonTyyppi: SisallonTyyppi, - kielet: Set[Kieli], - maskit: Map[String, Option[String]], - lahettavanVirkailijanOID: Option[String], - lahettaja: Option[Kontakti], - replyTo: Option[String], - vastaanottajat: Seq[Kontakti], - liiteTunnisteet: Seq[UUID], - lahettavaPalvelu: Option[String], - lahetysTunniste: Option[UUID], - prioriteetti: Option[Prioriteetti], - sailytysAika: Option[Int], - kayttooikeusRajoitukset: Set[String], - metadata: Map[String, Seq[String]], - omistaja: String - */ // viesti ilman lähetystunnusta - kantaOperaatiot.tallennaViesti("Viestin testiotsikko 1", - "Viestin sisältö", + kantaOperaatiot.tallennaViesti("Tärkeää asiaa", + "Tärkeä sisältö", SisallonTyyppi.TEXT, Set(Kieli.FI), Map.empty, diff --git a/lambdat/raportointi/src/main/scala/fi/oph/viestinvalitys/raportointi/resource/LahetysResource.scala b/lambdat/raportointi/src/main/scala/fi/oph/viestinvalitys/raportointi/resource/LahetysResource.scala index d7f3cf51..c5d0efed 100644 --- a/lambdat/raportointi/src/main/scala/fi/oph/viestinvalitys/raportointi/resource/LahetysResource.scala +++ b/lambdat/raportointi/src/main/scala/fi/oph/viestinvalitys/raportointi/resource/LahetysResource.scala @@ -76,30 +76,6 @@ case class PalautaLahetysFailureResponse( @BeanProperty virhe: String, ) extends PalautaLahetysResponse -class PalautaViestitResponse() {} - -@JsonInclude(JsonInclude.Include.NON_ABSENT) -case class ViestiResponse( - @BeanProperty lahetysTunniste: String, - @BeanProperty lahettavapalvelu: String, - @BeanProperty otsikko: String, - @BeanProperty tunniste: String, - @BeanProperty sisalto: String, - @BeanProperty sisallonTyyppi: String, - @BeanProperty lahettavanVirkailijanOID: String, - @BeanProperty replyTo: String, - @BeanProperty omistaja: String -) - -@JsonInclude(JsonInclude.Include.NON_ABSENT) -case class PalautaViestitSuccessResponse( - @BeanProperty viestit: java.util.List[ViestiResponse], -) extends PalautaViestitResponse - -case class PalautaViestitFailureResponse( - @BeanProperty virhe: String, -) extends PalautaViestitResponse - class VastaanottajatResponse() {} @JsonInclude(JsonInclude.Include.NON_ABSENT) @@ -131,70 +107,6 @@ class LahetysResource { val LOG = LoggerFactory.getLogger(classOf[LahetysResource]); - @GetMapping( - path = Array(GET_VIESTIT_LAHETYSTUNNISTEELLA_PATH), - produces = Array(MediaType.APPLICATION_JSON_VALUE) - ) - @Operation( - summary = "Palauttaa listan viestejä lähetystunnisteella", - description = "Palauttaa lähetyksen viestien tiedot raportointikäyttöliittymälle", - responses = Array( - new ApiResponse(responseCode = "200", description = "Palauttaa viestit", content = Array(new Content(schema = new Schema(implementation = classOf[PalautaViestitSuccessResponse])))), - new ApiResponse(responseCode = "400", description = RESPONSE_400_DESCRIPTION, content = Array(new Content(schema = new Schema(implementation = classOf[PalautaLahetysFailureResponse])))), - new ApiResponse(responseCode = "403", description = KATSELU_RESPONSE_403_DESCRIPTION, content = Array(new Content(schema = new Schema(implementation = classOf[Void])))), - new ApiResponse(responseCode = "410", description = KATSELU_RESPONSE_410_DESCRIPTION, content = Array(new Content(schema = new Schema(implementation = classOf[Void])))) - )) - def lueLahetyksenViestit(@PathVariable(LAHETYSTUNNISTE_PARAM_NAME) lahetysTunniste: String): ResponseEntity[PalautaViestitResponse] = - val securityOperaatiot = new SecurityOperaatiot - val kantaOperaatiot = new KantaOperaatiot(DbUtil.database) - - LogContext(lahetysTunniste = lahetysTunniste)(() => - try - Right(None) - .flatMap(_ => - // tarkistetaan katseluoikeus - if (!securityOperaatiot.onOikeusKatsella()) - Left(ResponseEntity.status(HttpStatus.FORBIDDEN).build()) - else - Right(None)) - .flatMap(_ => - // validoidaan tunniste - val uuid = ParametriUtil.asUUID(lahetysTunniste) - if (uuid.isEmpty) - Left(ResponseEntity.status(HttpStatus.BAD_REQUEST).body(PalautaViestitFailureResponse(LAHETYSTUNNISTE_INVALID))) - else - Right(uuid.get)) - .flatMap(tunniste => - // haetaan lähetys - val lahetys = kantaOperaatiot.getLahetys(tunniste) - if (lahetys.isEmpty) - Left(ResponseEntity.status(HttpStatus.GONE).build()) - else - Right(lahetys.get)) - .flatMap(lahetys => - // tarkistetaan oikeudet lähetykseen - val lahetyksenOikeudet: Set[String] = kantaOperaatiot.getLahetystenKayttooikeudet(Seq(lahetys.tunniste)).getOrElse(lahetys.tunniste, Set.empty) - val onLukuOikeudet = securityOperaatiot.onOikeusKatsellaEntiteetti(lahetys.omistaja, lahetyksenOikeudet) - if (!onLukuOikeudet) - Left(ResponseEntity.status(HttpStatus.FORBIDDEN).build()) - else - Right(lahetys)) - .map(lahetys => - // haetaan viestit - val viestit = kantaOperaatiot.getLahetyksenViestit(lahetys.tunniste) - ResponseEntity.status(HttpStatus.OK).body(PalautaViestitSuccessResponse( - viestit.map(viesti => ViestiResponse( - lahetys.tunniste.toString, lahetys.lahettavaPalvelu, lahetys.otsikko, - viesti.tunniste.toString, viesti.sisalto, viesti.sisallonTyyppi.toString, - viesti.lahettavanVirkailijanOID.getOrElse(""), viesti.replyTo.getOrElse(""), viesti.omistaja - )).asJava - ))) - .fold(e => e, r => r).asInstanceOf[ResponseEntity[PalautaViestitResponse]] - catch - case e: Exception => - LOG.error("Viestien lukeminen epäonnistui", e) - ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(PalautaViestitFailureResponse(RaportointiAPIConstants.VIESTIT_LUKEMINEN_EPAONNISTUI))) - @GetMapping( path = Array(GET_LAHETYKSET_LISTA_PATH), produces = Array(MediaType.APPLICATION_JSON_VALUE) diff --git a/lambdat/raportointi/src/main/scala/fi/oph/viestinvalitys/raportointi/security/SecurityOperaatiot.scala b/lambdat/raportointi/src/main/scala/fi/oph/viestinvalitys/raportointi/security/SecurityOperaatiot.scala index 54d2a477..cd498af8 100644 --- a/lambdat/raportointi/src/main/scala/fi/oph/viestinvalitys/raportointi/security/SecurityOperaatiot.scala +++ b/lambdat/raportointi/src/main/scala/fi/oph/viestinvalitys/raportointi/security/SecurityOperaatiot.scala @@ -41,4 +41,5 @@ class SecurityOperaatiot { def onOikeusKatsella(): Boolean = SecurityConstants.KATSELU_ROLES.intersect(kayttajanOikeudet).size>0 + def getKayttajanOikeudet(): Set[String] = kayttajanOikeudet } diff --git a/shared/src/main/scala/fi/oph/viestinvalitys/business/KantaOperaatiot.scala b/shared/src/main/scala/fi/oph/viestinvalitys/business/KantaOperaatiot.scala index 600925e3..6d29f841 100644 --- a/shared/src/main/scala/fi/oph/viestinvalitys/business/KantaOperaatiot.scala +++ b/shared/src/main/scala/fi/oph/viestinvalitys/business/KantaOperaatiot.scala @@ -40,7 +40,11 @@ class KantaOperaatiot(db: JdbcBackend.JdbcDatabaseDef) { * * @param otsikko lähetyksen otsikko * @param omistaja lähetyksen omistaja (luoja), vain sama omistaja voi liittää lähetykseen viestejä - * @param kayttooikeusRajoitukset oikeudet joista jokin käyttäjällä pitää olla lähetykset katselemiseksi + * @param lahettavanVirkailijanOID lähetyksen tehneen virkailijan OID + * @param lahettaja lähetyksen tehneen virkailijan nimi ja sähköpostiosoite + * @param replyTo lähetyksen vastausosoite + * @param prioriteetti lähetyksen prioriteetti + * @param sailytysAika lähetyksen säilytysaika vuorokausina * * @return tallennettu lähetys */ @@ -64,7 +68,7 @@ class KantaOperaatiot(db: JdbcBackend.JdbcDatabaseDef) { } /** - * Palauttaa lähetyksen + * Palauttaa lähetyksen tekemättä käyttöoikeusrajausta * * @param tunniste lähetyksen tunniste * @return tunnistetta vastaava lähetys @@ -80,9 +84,34 @@ class KantaOperaatiot(db: JdbcBackend.JdbcDatabaseDef) { Lahetys(UUID.fromString(tunniste), otsikko, omistaja, lahettavapalvelu, Option.apply(lahettavanVirkailijanOid), Kontakti(Option.apply(lahettajanNimi), lahettajanSahkoposti), Option.apply(replyto), Prioriteetti.valueOf(prioriteetti), Instant.parse(luotu))) + /** + * Palauttaa lähetyksen + * + * @param tunniste lähetyksen tunniste + * @param kayttooikeudet lista käyttäjän käyttöoikeuksista + * @return tunnistetta vastaava lähetys, jos käyttäjällä on siihen oikeudet + */ + def getLahetysKayttooikeusrajauksilla(tunniste: UUID, kayttooikeudet: Set[String]): Option[Lahetys] = + if(kayttooikeudet.isEmpty) return Option.empty + // johonkin lähetyksen viesteistä täytyy olla käyttöoikeus + Await.result(db.run( + sql""" + SELECT tunniste, otsikko, omistaja, lahettavapalvelu, lahettavanvirkailijanoid, lahettajannimi, lahettajansahkoposti, replyto, prioriteetti, to_json(luotu::timestamptz)#>>'{}' + FROM lahetykset + JOIN lahetykset_kayttooikeudet ON lahetys_tunniste=tunniste + WHERE tunniste=${tunniste.toString}::uuid AND kayttooikeus_tunniste IN ( + SELECT tunniste FROM kayttooikeudet WHERE kayttooikeus IN (${kayttooikeudet.map(oikeus => "'" + oikeus + "'").mkString(",")})) + """.as[(String, String, String, String, String, String, String, String, String, String)].headOption), DB_TIMEOUT) + .map((tunniste, otsikko, omistaja, lahettavapalvelu, lahettavanVirkailijanOid, lahettajanNimi, lahettajanSahkoposti, replyto, prioriteetti, luotu) => + Lahetys(UUID.fromString(tunniste), otsikko, omistaja, lahettavapalvelu, Option.apply(lahettavanVirkailijanOid), + Kontakti(Option.apply(lahettajanNimi), lahettajanSahkoposti), Option.apply(replyto), Prioriteetti.valueOf(prioriteetti), Instant.parse(luotu))) + /** * Palauttaa listan lähetyksiä hakuehdoilla * + * @param alkaen aikaleima, jonka jälkeen luodut haetaan (sivutus) + * @param enintaan palautettavan lähetysjoukon maksimikoko (sivutus) + * * @return hakuehtoja (TODO) vastaavat lähetykset */ def getLahetykset(alkaen: Option[Instant], enintaan: Option[Int]): Seq[Lahetys] = @@ -175,19 +204,18 @@ class KantaOperaatiot(db: JdbcBackend.JdbcDatabaseDef) { * @return löydetyt liitteet */ def getLiitteet(tunnisteet: Seq[UUID]): Seq[Liite] = - if(tunnisteet.isEmpty) - Seq.empty - else - val liiteQuery = - sql""" - SELECT tunniste, nimi, contenttype, koko, omistaja, tila - FROM liitteet - WHERE tunniste IN (#${tunnisteet.map(tunniste => "'" + tunniste + "'").mkString(",")}) - """ - .as[(String, String, String, Int, String, String)] - Await.result(db.run(liiteQuery), DB_TIMEOUT) - .map((tunniste, nimi, contentType, koko, omistaja, tila) - => Liite(UUID.fromString(tunniste), nimi, contentType, koko, omistaja, LiitteenTila.valueOf(tila))) + if(tunnisteet.isEmpty) return Seq.empty + + val liiteQuery = + sql""" + SELECT tunniste, nimi, contenttype, koko, omistaja, tila + FROM liitteet + WHERE tunniste IN (#${tunnisteet.map(tunniste => "'" + tunniste + "'").mkString(",")}) + """ + .as[(String, String, String, Int, String, String)] + Await.result(db.run(liiteQuery), DB_TIMEOUT) + .map((tunniste, nimi, contentType, koko, omistaja, tila) + => Liite(UUID.fromString(tunniste), nimi, contentType, koko, omistaja, LiitteenTila.valueOf(tila))) /** * Tallentaa uuden viestin @@ -352,19 +380,18 @@ class KantaOperaatiot(db: JdbcBackend.JdbcDatabaseDef) { Await.result(db.run(maaraAction), DB_TIMEOUT).find(i => true).get def getVastaanottajat(vastaanottajaTunnisteet: Seq[UUID]): Seq[Vastaanottaja] = - if(vastaanottajaTunnisteet.isEmpty) - Seq.empty - else - val vastaanottajatQuery = - sql""" - SELECT tunniste, viesti_tunniste, nimi, sahkopostiosoite, tila, prioriteetti, ses_tunniste - FROM vastaanottajat - WHERE tunniste IN (#${vastaanottajaTunnisteet.map(tunniste => "'" + tunniste + "'").mkString(",")}) - """ - .as[(String, String, String, String, String, String, String)] - Await.result(db.run(vastaanottajatQuery), DB_TIMEOUT) - .map((tunniste, viestiTunniste, nimi, sahkopostiOsoite, tila, prioriteetti, sesTunniste) - => Vastaanottaja(UUID.fromString(tunniste), UUID.fromString(viestiTunniste), Kontakti(Option.apply(nimi), sahkopostiOsoite), VastaanottajanTila.valueOf(tila), Prioriteetti.valueOf(prioriteetti), Option.apply(sesTunniste))) + if(vastaanottajaTunnisteet.isEmpty) return Seq.empty + + val vastaanottajatQuery = + sql""" + SELECT tunniste, viesti_tunniste, nimi, sahkopostiosoite, tila, prioriteetti, ses_tunniste + FROM vastaanottajat + WHERE tunniste IN (#${vastaanottajaTunnisteet.map(tunniste => "'" + tunniste + "'").mkString(",")}) + """ + .as[(String, String, String, String, String, String, String)] + Await.result(db.run(vastaanottajatQuery), DB_TIMEOUT) + .map((tunniste, viestiTunniste, nimi, sahkopostiOsoite, tila, prioriteetti, sesTunniste) + => Vastaanottaja(UUID.fromString(tunniste), UUID.fromString(viestiTunniste), Kontakti(Option.apply(nimi), sahkopostiOsoite), VastaanottajanTila.valueOf(tila), Prioriteetti.valueOf(prioriteetti), Option.apply(sesTunniste))) private def toKielet(kieletFi: Boolean, kieletSv: Boolean, kieletEn: Boolean): Set[Kieli] = var kielet: Seq[Kieli] = Seq.empty @@ -415,49 +442,6 @@ class KantaOperaatiot(db: JdbcBackend.JdbcDatabaseDef) { omistaja = omistaja, prioriteetti = Prioriteetti.valueOf(prioriteetti))) - def getLahetyksenViestit(lahetystunniste: UUID): Seq[Viesti] = - if ("".equals(lahetystunniste)) - Seq.empty - else - val viestitQuery = - sql""" - SELECT viestit.tunniste, lahetys_tunniste, viestit.otsikko, sisalto, sisallontyyppi, kielet_fi, kielet_sv, kielet_en, replyto, viestit.omistaja, viestit.prioriteetti, - lahettavapalvelu, lahettavanvirkailijanoid, lahettajannimi, lahettajansahkoposti - FROM viestit - JOIN lahetykset ON viestit.lahetys_tunniste=lahetykset.tunniste - WHERE viestit.lahetys_tunniste = ${lahetystunniste.toString}::uuid - """ - .as[(String, String, String, String, String, Boolean, Boolean, Boolean, String, String, String, String, String, String, String)] - - val maskitQuery = - sql""" - SELECT viesti_tunniste, salaisuus, maski - FROM maskit - WHERE viesti_tunniste IN (SELECT viesti_tunniste FROM viestit WHERE lahetys_tunniste=${lahetystunniste.toString}::uuid) - """ - .as[(String, String, String)] - val maskit: Map[String, Map[String, Option[String]]] = Await.result(db.run(maskitQuery), DB_TIMEOUT) - .groupBy((viestiTunniste, salaisuus, maski) => viestiTunniste) - .map((viestiTunniste, maskit) => viestiTunniste -> maskit.map((viestiTunniste, salaisuus, maski) => salaisuus -> Option.apply(maski)).toMap) - - Await.result(db.run(viestitQuery), DB_TIMEOUT) - .map((tunniste, lahetysTunniste, otsikko, sisalto, sisallonTyyppi, kieletFi, kieletSv, kieletEn, replyTo, omistaja, prioriteetti, lahettavapalvelu, lahettavanvirkailijanoid, lahettajannimi, lahettajansahkoposti) - => Viesti( - tunniste = UUID.fromString(tunniste), - lahetys_tunniste = UUID.fromString(lahetysTunniste), - otsikko = otsikko, - sisalto = sisalto, - sisallonTyyppi = SisallonTyyppi.valueOf(sisallonTyyppi), - kielet = toKielet(kieletFi, kieletSv, kieletEn), - maskit = maskit.get(tunniste).getOrElse(Map.empty), - lahettavaPalvelu = lahettavapalvelu, - lahettavanVirkailijanOID = Option.apply(lahettavanvirkailijanoid), - lahettaja = Kontakti(Option.apply(lahettajannimi), lahettajansahkoposti), - replyTo = Option.apply(replyTo), - omistaja = omistaja, - prioriteetti = Prioriteetti.valueOf(prioriteetti))) - - def getViestinLiitteet(viestiTunnisteet: Seq[UUID]): Map[UUID, Seq[Liite]] = if(viestiTunnisteet.isEmpty) Map.empty diff --git a/shared/src/test/scala/fi/oph/viestinvalitys/business/KantaOperaatiotTest.scala b/shared/src/test/scala/fi/oph/viestinvalitys/business/KantaOperaatiotTest.scala index 3bc0792b..47c3eeac 100644 --- a/shared/src/test/scala/fi/oph/viestinvalitys/business/KantaOperaatiotTest.scala +++ b/shared/src/test/scala/fi/oph/viestinvalitys/business/KantaOperaatiotTest.scala @@ -331,11 +331,23 @@ class KantaOperaatiotTest { // lisätään uusi viesti uudella oikeudella tallennaViesti(1, lahetysTunniste = lahetys2.tunniste, kayttoOikeudet = Set("ROLE_JARJESTELMA_OIKEUS3")) - // jolloin uusi oikeus tuleel lähetykselle + // jolloin uusi oikeus tulee lähetykselle Assertions.assertEquals( Seq(lahetys2.tunniste -> Set("ROLE_JARJESTELMA_OIKEUS2", "ROLE_JARJESTELMA_OIKEUS3")).toMap, kantaOperaatiot.getLahetystenKayttooikeudet(Seq(lahetys2.tunniste))) + /** + * Testataan lähetyksen haku käyttöoikeusrajauksilla + */ +// @Test def testGetLahetysKayttooikeusrajauksilla(): Unit = +// val lahetys1 = this.tallennaLahetys() +// +// // tallennetaan viestit oikeuksilla (jolloin luodaan lähetys johon oikeudet tallennetaan) +// tallennaViesti(1, lahetysTunniste = lahetys1.tunniste, kayttoOikeudet = Set("ROLE_JARJESTELMA_OIKEUS1")) +// +// Assertions.assertEquals(kantaOperaatiot.getLahetysKayttooikeusrajauksilla( +// lahetys1.tunniste, Set("ROLE_JARJESTELMA_OIKEUS1")).get.tunniste,lahetys1.tunniste) + /** * Testataan että viestiin voi liittää erikseen luodun lähetykset */