RED-6374, disabled owner permission toggles.
This commit is contained in:
parent
b789d44a54
commit
c0074b479d
@ -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"
|
||||
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@ -2,4 +2,5 @@ export interface IPermission {
|
||||
mask: number;
|
||||
name: string;
|
||||
sort: number;
|
||||
changeable: boolean;
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user