feat(rbac): add roles and permissions

This commit is contained in:
Schubert Ferenc 2026-07-02 23:05:59 +02:00
parent 86a32a942c
commit 694b7bd09a
37 changed files with 2682 additions and 218 deletions

View file

@ -0,0 +1,112 @@
STANDARD_ROLES = [
{
"name": "administrator",
"display_name": "Administrator",
"description": "Vollzugriff auf Olympus CRM",
"is_system": True,
},
{
"name": "management",
"display_name": "Management",
"description": "Lesender Zugriff auf operative Kernmodule",
"is_system": True,
},
{
"name": "sales",
"display_name": "Vertrieb",
"description": "Zugriff auf Kunden und Projekte",
"is_system": True,
},
{
"name": "technician",
"display_name": "Technik",
"description": "Zugriff auf Tickets und Projekte",
"is_system": True,
},
{
"name": "support",
"display_name": "Support",
"description": "Operativer Support-Zugriff",
"is_system": True,
},
{
"name": "warehouse",
"display_name": "Lager",
"description": "Zugriff auf lagernahe Prozesse",
"is_system": True,
},
{
"name": "guest",
"display_name": "Gast",
"description": "Minimaler Zugriff",
"is_system": True,
},
]
STANDARD_PERMISSIONS = [
("users.read", "Benutzer lesen", "Benutzer anzeigen", "users"),
("users.create", "Benutzer erstellen", "Benutzer anlegen", "users"),
("users.update", "Benutzer bearbeiten", "Benutzer aktualisieren", "users"),
("users.delete", "Benutzer loeschen", "Benutzer entfernen", "users"),
("users.password.update", "Passwort aendern", "Benutzerpasswort aendern", "users"),
("roles.read", "Rollen lesen", "Rollen anzeigen", "roles"),
("roles.create", "Rollen erstellen", "Rollen anlegen", "roles"),
("roles.update", "Rollen bearbeiten", "Rollen aktualisieren", "roles"),
("roles.delete", "Rollen loeschen", "Rollen entfernen", "roles"),
("roles.assign", "Rollen zuweisen", "Berechtigungen Rollen zuweisen", "roles"),
("customers.read", "Kunden lesen", "Kunden anzeigen", "customers"),
("customers.create", "Kunden erstellen", "Kunden anlegen", "customers"),
("customers.update", "Kunden bearbeiten", "Kunden aktualisieren", "customers"),
("customers.delete", "Kunden loeschen", "Kunden entfernen", "customers"),
("projects.read", "Projekte lesen", "Projekte anzeigen", "projects"),
("projects.create", "Projekte erstellen", "Projekte anlegen", "projects"),
("projects.update", "Projekte bearbeiten", "Projekte aktualisieren", "projects"),
("projects.delete", "Projekte loeschen", "Projekte entfernen", "projects"),
("tickets.read", "Tickets lesen", "Tickets anzeigen", "tickets"),
("tickets.create", "Tickets erstellen", "Tickets anlegen", "tickets"),
("tickets.update", "Tickets bearbeiten", "Tickets aktualisieren", "tickets"),
("tickets.delete", "Tickets loeschen", "Tickets entfernen", "tickets"),
("dashboard.read", "Dashboard lesen", "Dashboard anzeigen", "dashboard"),
("system.settings.read", "Einstellungen lesen", "Systemeinstellungen anzeigen", "system"),
("system.settings.update", "Einstellungen bearbeiten", "Systemeinstellungen aktualisieren", "system"),
]
ROLE_PERMISSION_NAMES = {
"administrator": "*",
"management": {
"dashboard.read",
"users.read",
"customers.read",
"projects.read",
"tickets.read",
},
"sales": {
"dashboard.read",
"customers.read",
"customers.create",
"customers.update",
"projects.read",
"tickets.read",
},
"technician": {
"dashboard.read",
"projects.read",
"tickets.read",
"tickets.create",
"tickets.update",
},
"support": {
"dashboard.read",
"users.read",
"customers.read",
"tickets.read",
"tickets.create",
"tickets.update",
},
"warehouse": {
"dashboard.read",
},
"guest": {
"dashboard.read",
},
}