Browse Source

fix(permission-management): disabled checkboxes

pull/1639/head
TheDiaval 7 years ago
parent
commit
23aa91da54
  1. 4
      npm/ng-packs/packages/permission-management/src/lib/components/permission-management.component.html
  2. 11
      npm/ng-packs/packages/permission-management/src/lib/components/permission-management.component.ts

4
npm/ng-packs/packages/permission-management/src/lib/components/permission-management.component.html

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

11
npm/ng-packs/packages/permission-management/src/lib/components/permission-management.component.ts

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

Loading…
Cancel
Save