diff --git a/apps/red-ui/src/app/modules/admin/screens/permissions/permissions-screen/permissions-screen.component.html b/apps/red-ui/src/app/modules/admin/screens/permissions/permissions-screen/permissions-screen.component.html
index f1a935495..53a8ea3f6 100644
--- a/apps/red-ui/src/app/modules/admin/screens/permissions/permissions-screen/permissions-screen.component.html
+++ b/apps/red-ui/src/app/modules/admin/screens/permissions/permissions-screen/permissions-screen.component.html
@@ -12,7 +12,8 @@
implements I
readonly targetPermission: IPermission;
readonly sort: number;
- readonly #currentValues: string[] = [];
+ readonly #checked: string[];
+ readonly #disabled: string[];
constructor(permissionsMapping: IPermissionsMapping) {
super(permissionsMapping);
this.mappedPermissions = permissionsMapping.mappedPermissions;
this.targetPermission = permissionsMapping.targetPermission;
this.sort = this.targetPermission.sort;
- this.#currentValues = this.mappedPermissions.map(permission => permission.name);
+ this.#checked = this.mappedPermissions.map(permission => permission.name);
+ this.#disabled = this.mappedPermissions.filter(permission => !permission.changeable).map(permission => permission.name);
}
get id(): string {
@@ -26,7 +28,11 @@ export class PermissionsMapping extends Entity implements I
return this.targetPermission.name;
}
- getValue(permissionName: string): boolean {
- return this.#currentValues.includes(permissionName);
+ isChecked(permissionName: string): boolean {
+ return this.#checked.includes(permissionName);
+ }
+
+ isDisabled(permissionName: string): boolean {
+ return this.#disabled.includes(permissionName);
}
}
diff --git a/libs/red-domain/src/lib/permissions/permissions.ts b/libs/red-domain/src/lib/permissions/permissions.ts
index 8efa79e79..4757f7994 100644
--- a/libs/red-domain/src/lib/permissions/permissions.ts
+++ b/libs/red-domain/src/lib/permissions/permissions.ts
@@ -2,4 +2,5 @@ export interface IPermission {
mask: number;
name: string;
sort: number;
+ changeable: boolean;
}