25 lines
1.1 KiB
TypeScript
25 lines
1.1 KiB
TypeScript
|
export type PermissionSection = "club" | "settings" | "user";
|
||
|
|
||
|
export type PermissionModule = "protocoll" | "user";
|
||
|
|
||
|
export type PermissionType = "read" | "create" | "update" | "delete";
|
||
|
|
||
|
export type PermissionString =
|
||
|
| `${PermissionSection}.${PermissionModule}.${PermissionType}` // für spezifische Berechtigungen
|
||
|
| `${PermissionSection}.${PermissionModule}.*` // für alle Berechtigungen in einem Modul
|
||
|
| `${PermissionSection}.${PermissionType}` // für spezifische Berechtigungen in einem Abschnitt
|
||
|
| `${PermissionSection}.*` // für alle Berechtigungen in einem Abschnitt
|
||
|
| "*"; // für Admin
|
||
|
|
||
|
export type PermissionObject = {
|
||
|
[section in PermissionSection]?: {
|
||
|
[module in PermissionModule]?: Array<PermissionType> | "*";
|
||
|
} & { all?: Array<PermissionType> | "*" };
|
||
|
} & {
|
||
|
admin?: boolean;
|
||
|
};
|
||
|
|
||
|
export const permissionSections: Array<PermissionSection> = ["club", "settings", "user"];
|
||
|
export const permissionModules: Array<PermissionModule> = ["protocoll", "user"];
|
||
|
export const permissionTypes: Array<PermissionType> = ["read", "create", "update", "delete"];
|