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 496b3bb989..53779cd867 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 @@ -153,15 +153,21 @@ export class PermissionManagementComponent this.permissions = this.permissions.map(per => { if (clickedPermission.name === per.name) { return { ...per, isGranted: !per.isGranted }; - } else if (clickedPermission.name === per.parentName && clickedPermission.isGranted) { - return { ...per, isGranted: false }; + } else if (clickedPermission.name === per.parentName) { + return { ...per, isGranted: !clickedPermission.isGranted }; } else if (clickedPermission.parentName === per.name && !clickedPermission.isGranted) { return { ...per, isGranted: true }; } return per; + }).map((per,index,permissions) => { + const childrens = permissions + .filter(p => p.parentName === per.name); + if(childrens.length > 0 && childrens.every(x => !x.isGranted)){ + return { ...per, isGranted: false }; + } + return per }); - this.setTabCheckboxState(); this.setGrantCheckboxState(); }, 0);