RED-6374, disabled owner permission toggles.

This commit is contained in:
George 2023-03-21 15:24:09 +02:00
parent b789d44a54
commit c0074b479d
3 changed files with 13 additions and 5 deletions

View File

@ -12,7 +12,8 @@
<div *ngFor="let permission of mappedPermissions" class="center cell">
<mat-slide-toggle
(toggleChange)="togglePermission(config.searchKey, permission)"
[checked]="config.getValue(permission)"
[disabled]="config.isDisabled(permission)"
[checked]="config.isChecked(permission)"
[iqserHelpMode]="'dossier_permissions'"
[overlappingElements]="['USER_MENU']"
color="primary"

View File

@ -8,14 +8,16 @@ export class PermissionsMapping extends Entity<IPermissionsMapping> 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<IPermissionsMapping> 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);
}
}

View File

@ -2,4 +2,5 @@ export interface IPermission {
mask: number;
name: string;
sort: number;
changeable: boolean;
}