2024-08-26 13:47:08 +02:00
|
|
|
export type PermissionSection = "club" | "settings" | "user";
|
|
|
|
|
2024-08-27 11:47:27 +02:00
|
|
|
export type PermissionModule =
|
2024-09-16 12:37:06 +02:00
|
|
|
| "member"
|
2024-08-27 11:47:27 +02:00
|
|
|
| "calendar"
|
|
|
|
| "newsletter"
|
2024-12-25 12:22:28 +01:00
|
|
|
| "newsletter_config"
|
2024-10-03 13:31:05 +02:00
|
|
|
| "protocol"
|
2024-08-27 11:47:27 +02:00
|
|
|
| "qualification"
|
|
|
|
| "award"
|
|
|
|
| "executive_position"
|
2024-12-12 16:33:51 +01:00
|
|
|
| "communication_type"
|
2024-09-04 14:24:30 +02:00
|
|
|
| "membership_status"
|
2025-01-25 11:58:10 +01:00
|
|
|
| "salutation"
|
2024-10-27 15:48:01 +01:00
|
|
|
| "calendar_type"
|
2024-08-27 11:47:27 +02:00
|
|
|
| "user"
|
2024-12-12 16:33:51 +01:00
|
|
|
| "role"
|
2025-01-22 09:27:15 +01:00
|
|
|
| "webapi"
|
2024-12-12 16:33:51 +01:00
|
|
|
| "query"
|
2024-12-22 10:29:42 +01:00
|
|
|
| "query_store"
|
2024-12-23 14:00:50 +01:00
|
|
|
| "template"
|
2025-02-02 16:23:44 +01:00
|
|
|
| "template_usage"
|
|
|
|
| "backup";
|
2024-08-26 13:47:08 +02:00
|
|
|
|
2024-08-27 17:54:59 +02:00
|
|
|
export type PermissionType = "read" | "create" | "update" | "delete";
|
2024-08-26 13:47:08 +02:00
|
|
|
|
|
|
|
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;
|
|
|
|
};
|
|
|
|
|
2024-08-27 11:47:27 +02:00
|
|
|
export type SectionsAndModulesObject = {
|
|
|
|
[section in PermissionSection]: Array<PermissionModule>;
|
|
|
|
};
|
|
|
|
|
2024-08-26 13:47:08 +02:00
|
|
|
export const permissionSections: Array<PermissionSection> = ["club", "settings", "user"];
|
2024-08-27 11:47:27 +02:00
|
|
|
export const permissionModules: Array<PermissionModule> = [
|
2024-09-16 12:37:06 +02:00
|
|
|
"member",
|
2024-08-27 11:47:27 +02:00
|
|
|
"calendar",
|
|
|
|
"newsletter",
|
2024-12-25 12:22:28 +01:00
|
|
|
"newsletter_config",
|
2024-10-03 13:31:05 +02:00
|
|
|
"protocol",
|
2024-08-27 11:47:27 +02:00
|
|
|
"qualification",
|
|
|
|
"award",
|
|
|
|
"executive_position",
|
2024-12-12 16:33:51 +01:00
|
|
|
"communication_type",
|
2024-09-04 14:24:30 +02:00
|
|
|
"membership_status",
|
2025-01-25 11:58:10 +01:00
|
|
|
"salutation",
|
2024-10-27 15:48:01 +01:00
|
|
|
"calendar_type",
|
2024-08-27 11:47:27 +02:00
|
|
|
"user",
|
|
|
|
"role",
|
2025-01-22 09:27:15 +01:00
|
|
|
"webapi",
|
2024-12-12 16:33:51 +01:00
|
|
|
"query",
|
|
|
|
"query_store",
|
2024-12-22 10:29:42 +01:00
|
|
|
"template",
|
2024-12-23 14:00:50 +01:00
|
|
|
"template_usage",
|
2025-02-02 16:23:44 +01:00
|
|
|
"backup",
|
2024-08-27 11:47:27 +02:00
|
|
|
];
|
2024-08-26 13:47:08 +02:00
|
|
|
export const permissionTypes: Array<PermissionType> = ["read", "create", "update", "delete"];
|
2024-08-27 11:47:27 +02:00
|
|
|
export const sectionsAndModules: SectionsAndModulesObject = {
|
2024-12-12 16:33:51 +01:00
|
|
|
club: ["member", "calendar", "newsletter", "protocol", "query"],
|
|
|
|
settings: [
|
|
|
|
"qualification",
|
|
|
|
"award",
|
|
|
|
"executive_position",
|
|
|
|
"communication_type",
|
|
|
|
"membership_status",
|
2025-01-25 11:58:10 +01:00
|
|
|
"salutation",
|
2024-12-12 16:33:51 +01:00
|
|
|
"calendar_type",
|
|
|
|
"query_store",
|
2024-12-22 10:29:42 +01:00
|
|
|
"template",
|
2024-12-23 14:00:50 +01:00
|
|
|
"template_usage",
|
2024-12-25 12:22:28 +01:00
|
|
|
"newsletter_config",
|
2024-12-12 16:33:51 +01:00
|
|
|
],
|
2025-02-02 16:23:44 +01:00
|
|
|
user: ["user", "role", "webapi", "backup"],
|
2024-08-27 11:47:27 +02:00
|
|
|
};
|