2022-07-11 14:07:43 +02:00

34 lines
818 B
TypeScript

import type { CredentialGroup } from '../../authentication/Credentials';
import type { IdentifierMap, IdentifierSetMultiMap } from '../../util/map/IdentifierMap';
/**
* Different modes that require permission.
*/
export enum AccessMode {
read = 'read',
append = 'append',
write = 'write',
create = 'create',
delete = 'delete',
}
/**
* Access modes per identifier.
*/
export type AccessMap = IdentifierSetMultiMap<AccessMode>;
/**
* A data interface indicating which permissions are required (based on the context).
*/
export type Permission = Partial<Record<AccessMode, boolean>>;
/**
* Permission per CredentialGroup.
*/
export type PermissionSet = Partial<Record<CredentialGroup, Permission>>;
/**
* PermissionSet per identifier.
*/
export type PermissionMap = IdentifierMap<PermissionSet>;