33 lines
1.1 KiB
TypeScript
33 lines
1.1 KiB
TypeScript
import { Entity } from '@iqser/common-ui';
|
|
import { IPermissionsMapping } from './permissions-mapping';
|
|
import { IPermission } from './permissions';
|
|
|
|
export class PermissionsMapping extends Entity<IPermissionsMapping> implements IPermissionsMapping {
|
|
readonly routerLink = undefined;
|
|
readonly mappedPermissions: IPermission[];
|
|
readonly targetPermission: IPermission;
|
|
readonly sort: number;
|
|
|
|
readonly #currentValuesMap = new Map<string, boolean>();
|
|
|
|
constructor(permissionsMapping: IPermissionsMapping, readonly targetObject: string) {
|
|
super(permissionsMapping);
|
|
this.mappedPermissions = permissionsMapping.mappedPermissions;
|
|
this.targetPermission = permissionsMapping.targetPermission;
|
|
this.sort = this.targetPermission.sort;
|
|
this.mappedPermissions.forEach(permission => this.#currentValuesMap.set(permission.name, true));
|
|
}
|
|
|
|
get id(): string {
|
|
return this.targetPermission.name;
|
|
}
|
|
|
|
get searchKey(): string {
|
|
return this.targetPermission.name;
|
|
}
|
|
|
|
getValue(permissionName: string): boolean {
|
|
return this.#currentValuesMap.has(permissionName);
|
|
}
|
|
}
|