Skip to content

Commit

Permalink
Merge pull request #448 from NDLANO/use-primary-affiliation-if-present
Browse files Browse the repository at this point in the history
Extra check for primary affiliation
  • Loading branch information
gunnarvelle authored Apr 10, 2024
2 parents a3d8046 + 265d59b commit 06101b2
Show file tree
Hide file tree
Showing 7 changed files with 61 additions and 7 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -202,7 +202,7 @@ class ReadServiceTest extends UnitSuite with TestEnvironment {
val article1 = TestData.sampleDomainArticle.copy(id = Some(1), availability = Availability.everyone)
val article2 = TestData.sampleDomainArticle.copy(id = Some(2), availability = Availability.everyone)
val article3 = TestData.sampleDomainArticle.copy(id = Some(3), availability = Availability.teacher)
val teacherUser = FeideExtendedUserInfo("", eduPersonAffiliation = Seq("employee"), "", Seq.empty)
val teacherUser = FeideExtendedUserInfo("", eduPersonAffiliation = Seq("employee"), None, "", Seq.empty)

when(feideApiClient.getFeideExtendedUser(any)).thenReturn(Success(teacherUser))
when(articleRepository.withIds(any, any, any)(any))
Expand All @@ -229,7 +229,7 @@ class ReadServiceTest extends UnitSuite with TestEnvironment {
val article1 = TestData.sampleDomainArticle.copy(id = Some(1), availability = Availability.everyone)
val article2 = TestData.sampleDomainArticle.copy(id = Some(2), availability = Availability.everyone)
val article3 = TestData.sampleDomainArticle.copy(id = Some(3), availability = Availability.teacher)
val teacherUser = FeideExtendedUserInfo("", eduPersonAffiliation = Seq("student"), "", Seq.empty)
val teacherUser = FeideExtendedUserInfo("", eduPersonAffiliation = Seq("student"), None, "", Seq.empty)

when(feideApiClient.getFeideExtendedUser(any)).thenReturn(Success(teacherUser))
when(articleRepository.withIds(any, any, any)(any))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ class ArenaTest
when(feideApiClient.getFeideAccessTokenOrFail(any)).thenReturn(Success("notimportante"))
when(feideApiClient.getFeideGroups(any)).thenReturn(Success(Seq.empty))
when(feideApiClient.getFeideExtendedUser(any))
.thenReturn(Success(FeideExtendedUserInfo("", Seq("employee"), "[email protected]", Seq("[email protected]"))))
.thenReturn(Success(FeideExtendedUserInfo("", Seq("employee"), None, "[email protected]", Seq("[email protected]"))))
when(feideApiClient.getOrganization(any)).thenReturn(Success("zxc"))
when(configService.getMyNDLAEnabledOrgs).thenReturn(Success(List("zxc")))
when(clock.now()).thenReturn(someDate)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,9 @@ class CloneFolderTest
when(feideApiClient.getFeideAccessTokenOrFail(any)).thenReturn(Success("notimportante"))
when(feideApiClient.getFeideGroups(any)).thenReturn(Success(Seq.empty))
when(feideApiClient.getFeideExtendedUser(any))
.thenReturn(Success(FeideExtendedUserInfo("", Seq("employee"), "[email protected]", Seq("[email protected]"))))
.thenReturn(
Success(FeideExtendedUserInfo("", Seq("employee"), Some("employee"), "[email protected]", Seq("[email protected]")))
)
when(feideApiClient.getOrganization(any)).thenReturn(Success("zxc"))
when(clock.now()).thenReturn(NDLADate.of(2017, 1, 1, 1, 59))
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -200,6 +200,7 @@ class UserServiceTest extends UnitTestSuite with TestEnvironment {
val feideUserInfo = FeideExtendedUserInfo(
displayName = "David",
eduPersonAffiliation = Seq("student"),
None,
eduPersonPrincipalName = "[email protected]",
mail = Seq("[email protected]")
)
Expand Down Expand Up @@ -329,6 +330,7 @@ class UserServiceTest extends UnitTestSuite with TestEnvironment {
val updatedFeideUser = FeideExtendedUserInfo(
displayName = "name",
eduPersonAffiliation = Seq.empty,
None,
eduPersonPrincipalName = "[email protected]",
mail = Seq("[email protected]")
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,14 +46,16 @@ object FeideOpenIdUserInfo {
case class FeideExtendedUserInfo(
displayName: String,
eduPersonAffiliation: Seq[String],
eduPersonPrimaryAffiliation: Option[String],
eduPersonPrincipalName: String,
mail: Seq[String]
) {

private def isTeacherAffiliation: Boolean = {
this.eduPersonAffiliation.contains("staff") ||
this.eduPersonAffiliation.contains("faculty") ||
this.eduPersonAffiliation.contains("employee")
!this.eduPersonPrimaryAffiliation.contains("student") &&
(this.eduPersonAffiliation.contains("staff") ||
this.eduPersonAffiliation.contains("faculty") ||
this.eduPersonAffiliation.contains("employee"))
}

def isTeacher: Boolean = {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
/*
* Part of NDLA network
* Copyright (C) 2024 NDLA
*
* See LICENSE
*
*/

package no.ndla.network.clients

import no.ndla.network.UnitSuite

class FeideApiClientTest extends UnitSuite {

test("testFeideExtendedUserInfo roles") {
val user = FeideExtendedUserInfo("", Seq.empty, None, "", Seq(""))
assert(!user.isTeacher)

val member = user.copy(eduPersonAffiliation = Seq("member"))
assert(!member.isTeacher)

val student = user.copy(eduPersonAffiliation = Seq("member", "student"))
assert(!student.isTeacher)

val studentWithPrimary =
user.copy(eduPersonAffiliation = Seq("member", "student"), eduPersonPrimaryAffiliation = Some("student"))
assert(!studentWithPrimary.isTeacher)

val staff = user.copy(eduPersonAffiliation = Seq("member", "staff"))
assert(staff.isTeacher)

val faculty = user.copy(eduPersonAffiliation = Seq("member", "faculty"))
assert(faculty.isTeacher)

val employee = user.copy(eduPersonAffiliation = Seq("member", "employee"))
assert(employee.isTeacher)

val employeeWithStudent = user.copy(eduPersonAffiliation = Seq("member", "employee", "student"))
assert(employeeWithStudent.isTeacher)

val studentWithEmployee = user.copy(
eduPersonAffiliation = Seq("member", "student", "employee"),
eduPersonPrimaryAffiliation = Some("student")
)
assert(!studentWithEmployee.isTeacher)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -247,6 +247,7 @@ class SearchControllerTest extends UnitSuite with TestEnvironment with TapirCont
val teacheruser = FeideExtendedUserInfo(
displayName = "Johnny Bravo",
eduPersonAffiliation = Seq("employee", "staff"),
eduPersonPrimaryAffiliation = None,
eduPersonPrincipalName = "[email protected]",
mail = Seq("[email protected]")
)
Expand Down

0 comments on commit 06101b2

Please sign in to comment.