fix(permission-management): disabled checkboxes

pull/1639/head
TheDiaval 6 years ago
parent 2c8cff7355
commit 23aa91da54

@ -26,7 +26,7 @@
<li *ngFor="let group of groups$ | async; trackBy: trackByFn" class="nav-item">
<a
class="nav-link pointer"
[class.active]="selectedGroup.name === group.name"
[class.active]="selectedGroup?.name === group?.name"
(click)="onChangeGroup(group)"
>{{ group?.displayName }}</a
>
@ -65,7 +65,7 @@
[value]="getChecked(permission.name)"
[attr.id]="permission.name"
class="custom-control-input"
[disabled]="permission.isGranted && permission.grantedProviders.length > 0"
[disabled]="isGrantedByRole(permission.grantedProviders)"
/>
<label
class="custom-control-label"

@ -94,8 +94,15 @@ export class PermissionManagementComponent implements OnInit, OnChanges {
return (this.permissions.find(per => per.name === name) || { isGranted: false }).isGranted;
}
isGrantedByRole(grantedProviders: PermissionManagement.GrantedProvider[]): boolean {
if (grantedProviders.length) {
return grantedProviders.findIndex(p => p.providerName === 'Role') === -1 ? false : true;
}
return false;
}
onClickCheckbox(clickedPermission: PermissionManagement.Permission, value) {
if (clickedPermission.isGranted && clickedPermission.grantedProviders.length > 0) return;
if (clickedPermission.isGranted && this.isGrantedByRole(clickedPermission.grantedProviders)) return;
setTimeout(() => {
this.permissions = this.permissions.map(per => {
@ -150,7 +157,7 @@ export class PermissionManagementComponent implements OnInit, OnChanges {
onClickSelectThisTab() {
this.selectedGroupPermissions$.pipe(take(1)).subscribe(permissions => {
permissions.forEach(permission => {
if (permission.isGranted && permission.grantedProviders.length > 0) return;
if (permission.isGranted && this.isGrantedByRole(permission.grantedProviders)) return;
const index = this.permissions.findIndex(per => per.name === permission.name);

Loading…
Cancel
Save