Skip to content

Commit

Permalink
also take orgs into consideration
Browse files Browse the repository at this point in the history
  • Loading branch information
gunnarvelle committed Jan 30, 2025
1 parent 828e84c commit a4f7101
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 8 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -276,14 +276,17 @@ trait FolderConverterService {
updaterToken: Option[TokenUser],
updaterUser: Option[DomainMyNDLAUser],
arenaEnabledUsers: List[String],
arenaEnabledOrgs: List[String],
feideToken: Option[FeideAccessToken]
): Try[DomainMyNDLAUser] = {
val favoriteSubjects = updatedUser.favoriteSubjects.getOrElse(domainUserData.favoriteSubjects)
val arenaEnabled = {
if (updaterToken.hasPermission(LEARNINGPATH_API_ADMIN) || updaterUser.exists(_.isAdmin))
updatedUser.arenaEnabled.getOrElse(domainUserData.arenaEnabled)
else
domainUserData.arenaEnabled || arenaEnabledUsers.map(_.toLowerCase).contains(domainUserData.email.toLowerCase)
domainUserData.arenaEnabled || arenaEnabledUsers
.map(_.toLowerCase)
.contains(domainUserData.email.toLowerCase) || arenaEnabledOrgs.contains(domainUserData.organization)
}

val arenaAccepted = getArenaAccepted(arenaEnabled, domainUserData, updatedUser, feideToken).?
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -137,16 +137,17 @@ trait UserService {
_ <- folderWriteService.canWriteDuringMyNDLAWriteRestrictionsOrAccessDenied(feideId, feideAccessToken)
existingUserData <- getMyNDLAUserOrFail(feideId)
enabledUsers <- configService.getMyNDLAEnabledUsers
enabledOrgs <- configService.getMyNDLAEnabledOrgs
combined <- folderConverterService.mergeUserData(
existingUserData,
updatedUser,
None,
Some(existingUserData),
enabledUsers,
enabledOrgs,
feideAccessToken
)
updated <- userRepository.updateUser(feideId, combined)
enabledOrgs <- configService.getMyNDLAEnabledOrgs
updated <- userRepository.updateUser(feideId, combined)
api = folderConverterService.toApiUserData(updated, enabledOrgs)
} yield api
}
Expand All @@ -160,18 +161,19 @@ trait UserService {
for {
existing <- userService.getUserById(userId)(session)
enabledUsers <- configService.getMyNDLAEnabledUsers
enabledOrgs <- configService.getMyNDLAEnabledOrgs
converted <- folderConverterService.mergeUserData(
existing,
updatedUser,
updaterToken,
updaterMyNdla,
enabledUsers,
enabledOrgs,
// NOTE: This token is used to create a nodebb profile
// since the one updating here is an admin, we cannot use it to create a profile.
feideToken = None
)
updated <- userRepository.updateUserById(userId, converted)(session)
enabledOrgs <- configService.getMyNDLAEnabledOrgs
updated <- userRepository.updateUserById(userId, converted)(session)
api = folderConverterService.toApiUserData(updated, enabledOrgs)
} yield api
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -563,13 +563,13 @@ class FolderConverterServiceTest extends UnitTestSuite with TestEnvironment {
arenaAccepted = true
)

service.mergeUserData(domainUserData, updatedUserData1, None, None, List.empty, None).get should be(
service.mergeUserData(domainUserData, updatedUserData1, None, None, List.empty, List.empty, None).get should be(
expectedUserData1
)
service.mergeUserData(domainUserData, updatedUserData2, None, None, List.empty, None).get should be(
service.mergeUserData(domainUserData, updatedUserData2, None, None, List.empty, List.empty, None).get should be(
expectedUserData2
)
service.mergeUserData(domainUserData, updatedUserData3, None, None, List.empty, None).get should be(
service.mergeUserData(domainUserData, updatedUserData3, None, None, List.empty, List.empty, None).get should be(
expectedUserData3
)
}
Expand Down

0 comments on commit a4f7101

Please sign in to comment.