Skip to content

Commit

Permalink
handle user without groups case
Browse files Browse the repository at this point in the history
  • Loading branch information
niladic committed Feb 10, 2025
1 parent 5b07ceb commit c597369
Show file tree
Hide file tree
Showing 4 changed files with 12 additions and 4 deletions.
6 changes: 4 additions & 2 deletions app/controllers/ApplicationController.scala
Original file line number Diff line number Diff line change
Expand Up @@ -149,7 +149,8 @@ case class ApplicationController @Inject() (
rights: Authorization.UserRights,
currentUserGroups: List[UserGroup]
): Future[(List[UserGroup], List[User], List[User])] = {
val hasFranceServicesAccess = currentUserGroups.exists(_.isInFranceServicesNetwork)
val hasFranceServicesAccess =
Authorization.hasAccessToFranceServicesNetwork(currentUserGroups)(rights)
val groupsOfAreaFuture =
userGroupService.byArea(areaId, excludeFranceServicesNetwork = !hasFranceServicesAccess)
groupsOfAreaFuture.map { groupsOfArea =>
Expand Down Expand Up @@ -377,7 +378,8 @@ case class ApplicationController @Inject() (
infoName.trim -> infoValue.trim
}

val isInFranceServicesNetwork = creatorGroup.exists(_.isInFranceServicesNetwork)
val isInFranceServicesNetwork = Authorization
.hasAccessToFranceServicesNetwork(creatorGroup.toList)(request.rights)
val application = Application(
applicationId,
Time.nowParis(),
Expand Down
3 changes: 3 additions & 0 deletions app/models/Authorization.scala
Original file line number Diff line number Diff line change
Expand Up @@ -208,6 +208,9 @@ object Authorization {
def canSeeStats: Check =
atLeastOneIsAuthorized(isAdmin, isAreaManager, isManager, isObserver)

def hasAccessToFranceServicesNetwork(userGroups: List[UserGroup]): Check =
_ => userGroups.isEmpty || userGroups.exists(_.isInFranceServicesNetwork)

//
// Authorizations concerning User/UserGroup
//
Expand Down
5 changes: 4 additions & 1 deletion app/views/application.scala
Original file line number Diff line number Diff line change
Expand Up @@ -549,7 +549,10 @@ object application {
readonly := true,
value := selectedArea.id.toString
),
if (currentUser.admin || userGroups.exists(group => group.isInFranceServicesNetwork)) {
if (
currentUser.admin || Authorization
.hasAccessToFranceServicesNetwork(userGroups)(currentUserRights)
) {
div(
"Territoire concerné : ",
views.helpers
Expand Down
2 changes: 1 addition & 1 deletion app/views/createApplication.scala.html
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ <h4 class="mdl-cell mdl-cell--8-col mdl-cell--12-col-phone">Nouvelle demande</h4
Les champs marqués d’un <span class="mdl-color-text--red-500">*</span> sont obligatoires
</div>

@if(userGroups.exists(group => group.isInFranceServicesNetwork)) {
@if(Authorization.hasAccessToFranceServicesNetwork(userGroups)(currentUserRights)) {
@if(mainInfos.config.featureCanSendApplicationsAnywhere) {
<h5 class="title--addline">Territoire concerné</h5>
<div>
Expand Down

0 comments on commit c597369

Please sign in to comment.