From 1222c16a320b21f44b536f54fac3f52ae3f91b73 Mon Sep 17 00:00:00 2001 From: Guillaume Heurtier <guillaume.heurtier@maarch.org> Date: Fri, 15 Nov 2019 15:02:27 +0100 Subject: [PATCH] FEAT #12161 TIME 0:30 showing all groups in user admin, but disabling the groups the user cannot assign --- src/app/group/models/GroupModelAbstract.php | 18 ++++++++++++------ .../user/user-administration.component.html | 2 +- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/src/app/group/models/GroupModelAbstract.php b/src/app/group/models/GroupModelAbstract.php index 0f91c5d12d6..02bab73fa05 100755 --- a/src/app/group/models/GroupModelAbstract.php +++ b/src/app/group/models/GroupModelAbstract.php @@ -195,17 +195,23 @@ abstract class GroupModelAbstract $rawUserGroups = UserModel::getGroupsByUser(['id' => $aArgs['userId']]); $userGroups = array_column($rawUserGroups, 'group_id'); - if ($GLOBALS['userId'] == 'superadmin') { - $allGroups = GroupModel::get(['select' => ['group_id', 'group_desc']]); - } else { - $allGroups = PrivilegeController::getAssignableGroups(['userId' => $GLOBALS['id']]); + $allGroups = GroupModel::get(['select' => ['group_id', 'group_desc']]); + $assignableGroups = PrivilegeController::getAssignableGroups(['userId' => $GLOBALS['id']]); + $assignableGroups = array_column($assignableGroups, 'group_id'); + + foreach ($allGroups as $key => $value) { + if (in_array($value['group_id'], $assignableGroups)) { + $allGroups[$key]['enabled'] = true; + } else { + $allGroups[$key]['enabled'] = false; + } } foreach ($allGroups as $key => $value) { if (in_array($value['group_id'], $userGroups)) { - $allGroups[$key]['disabled'] = true; + $allGroups[$key]['checked'] = true; } else { - $allGroups[$key]['disabled'] = false; + $allGroups[$key]['checked'] = false; } } diff --git a/src/frontend/app/administration/user/user-administration.component.html b/src/frontend/app/administration/user/user-administration.component.html index 835a01c9c45..b81d74506d9 100755 --- a/src/frontend/app/administration/user/user-administration.component.html +++ b/src/frontend/app/administration/user/user-administration.component.html @@ -219,7 +219,7 @@ <mat-nav-list> <mat-list-item *ngFor="let group of user.allGroups" disableRipple="true"> <mat-slide-toggle id="{{group.group_id}}" color="primary" - [checked]="group.disabled == true" (change)="toggleGroup(group)"> + [checked]="group.checked == true" [disabled]="!group.enabled" (change)="toggleGroup(group)"> {{group.group_desc}}</mat-slide-toggle> </mat-list-item> </mat-nav-list> -- GitLab