From c0074b479d0acb937fcf3e5f95e3cff8b4dc2dbf Mon Sep 17 00:00:00 2001 From: George Date: Tue, 21 Mar 2023 15:24:09 +0200 Subject: [PATCH] RED-6374, disabled owner permission toggles. --- .../permissions-screen.component.html | 3 ++- .../lib/permissions/permissions-mapping.model.ts | 14 ++++++++++---- libs/red-domain/src/lib/permissions/permissions.ts | 1 + 3 files changed, 13 insertions(+), 5 deletions(-) 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; }