|
|
|
@ -164,25 +164,16 @@ export class PermissionManagementComponent
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
|
|
setTimeout(() => {
|
|
|
|
|
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.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.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.parentName === per.name && !clickedPermission.isGranted) {
|
|
|
|
|
return { ...per, isGranted: true };
|
|
|
|
|
}
|
|
|
|
|
return per;
|
|
|
|
|
});
|
|
|
|
|
this.setTabCheckboxState();
|
|
|
|
|
this.setGrantCheckboxState();
|
|
|
|
|
}, 0);
|
|
|
|
|