red-ui/libs/red-domain/src/lib/permissions/permissions-mapping.model.ts
2022-09-01 12:16:12 +03:00

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);
}
}