From 0dfb919494059f1f8b0e2c452119dc21454889f0 Mon Sep 17 00:00:00 2001 From: TheDiaval Date: Thu, 8 Aug 2019 17:25:55 +0300 Subject: [PATCH] feature(permission-management): disable checkboxes for the permissions granted by a role --- .../src/lib/components/permission-management.component.html | 6 +++++- .../src/lib/components/permission-management.component.ts | 6 ++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/npm/ng-packs/packages/permission-management/src/lib/components/permission-management.component.html b/npm/ng-packs/packages/permission-management/src/lib/components/permission-management.component.html index 6ad9bfb201..75118201fe 100644 --- a/npm/ng-packs/packages/permission-management/src/lib/components/permission-management.component.html +++ b/npm/ng-packs/packages/permission-management/src/lib/components/permission-management.component.html @@ -65,12 +65,16 @@ [value]="getChecked(permission.name)" [attr.id]="permission.name" class="custom-control-input" + [disabled]="isDisabled(permission)" /> {{ permission.displayName }} + {{ provider.providerName }}: {{ provider.providerKey }} diff --git a/npm/ng-packs/packages/permission-management/src/lib/components/permission-management.component.ts b/npm/ng-packs/packages/permission-management/src/lib/components/permission-management.component.ts index ed2139ecb7..069825760b 100644 --- a/npm/ng-packs/packages/permission-management/src/lib/components/permission-management.component.ts +++ b/npm/ng-packs/packages/permission-management/src/lib/components/permission-management.component.ts @@ -95,7 +95,13 @@ export class PermissionManagementComponent implements OnInit, OnChanges { return (this.permissions.find(per => per.name === name) || { isGranted: false }).isGranted; } + isDisabled({ isGranted, grantedProviders }: PermissionManagement.Permission): boolean { + return isGranted && grantedProviders.length > 0; + } + onClickCheckbox(clickedPermission: PermissionManagement.Permission, value) { + if (this.isDisabled(clickedPermission)) return; + setTimeout(() => { this.permissions = this.permissions.map(per => { if (clickedPermission.name === per.name) {