Rollen und Berechtigungen¶
Rollen-Uebersicht¶
Das Admin-Dashboard verwendet vier Rollen mit abgestuften Berechtigungen. Die Rollen werden in Keycloak verwaltet und beim Login aus dem JWT-Token extrahiert.
super-admin¶
- Vollzugriff auf alle Funktionen
- Umgeht alle Rollen- und Feature-Checks
- Einzige Rolle mit Zugriff auf Einstellungen, Audit-Log, Lizenz, Produkte, Changelog und Quality Monitor
- Kann im Produkt-Switcher "Alle Produkte" waehlen
avs-admin¶
- Umgeht rollenspezifische Pruefungen (gleicher Mechanismus wie
super-adminimrequire_role-Check) - Zugriff auf Analytics und Feedback-Export
- Kein Zugriff auf Einstellungen, Audit-Log, Lizenz, Produkte, Changelog
avs-editor¶
- Kann Dokumente verwalten (Upload, Versionierung, Rollback, Loeschen)
- Kann Evaluationen manuell starten
- Zugriff auf Feedback und Sessions (lesend)
- Kein Zugriff auf Analytics, Feedback-Export, Einstellungen
avs-viewer¶
- Lesezugriff auf Dashboard, Feedback und Sessions
- Kein Zugriff auf Dokumentenverwaltung, Analytics, Administration
- Minimale Berechtigungsstufe fuer den Zugang zum Admin-Dashboard
Berechtigungsmatrix¶
Die folgende Tabelle zeigt, welche Rolle Zugriff auf welches Feature hat.
| Feature | super-admin | avs-admin | avs-editor | avs-viewer |
|---|---|---|---|---|
| Dashboard | Ja | Ja | Ja | Ja |
| Quality Monitor (Dashboard) | Ja | Nein | Nein | Nein |
| Dokumente (Anzeige) | Ja | Ja | Ja | Ja |
| Dokumente (Upload/Loeschen) | Ja | Ja | Ja | Nein |
| Analytics | Ja | Ja | Nein | Nein |
| Feedback (Anzeige) | Ja | Ja | Ja | Ja |
| Feedback-Export (CSV) | Ja | Ja | Nein | Nein |
| Sessions | Ja | Ja | Ja | Ja |
| Evaluation (starten) | Ja | Ja | Ja | Nein |
| Produkte | Ja | Nein | Nein | Nein |
| Einstellungen | Ja | Nein | Nein | Nein |
| Audit-Log | Ja | Nein | Nein | Nein |
| Lizenz | Ja | Nein | Nein | Nein |
| Changelog | Ja | Nein | Nein | Nein |
| Chat | Ja | Ja | Ja | Ja |
Drei-Schichten-Pruefung¶
Das Feature-Gate-System prueft in drei Schichten, ob ein Benutzer auf ein Feature zugreifen darf:
- super-admin Bypass: Hat der Benutzer die Rolle
super-admin? Falls ja, ist der Zugriff sofort gewaehrt. - Basis-Features: Dashboard, Dokumente, Feedback, Sessions und Chat sind immer verfuegbar (keine Lizenz erforderlich). Hier greift nur der Rollen-Check.
- Lizenzierte Features: Fuer alle anderen Features wird zuerst geprueft, ob eine gueltige Lizenz vorliegt und das Feature enthaelt. Danach erfolgt der Rollen-Check.
FEATURE_ROLE_MAP¶
Die explizite Zuordnung von Features zu Rollen im Code:
| Feature | Erforderliche Rollen |
|---|---|
settings |
super-admin |
audit_log |
super-admin |
changelog |
super-admin |
analytics |
avs-admin, super-admin |
documents |
avs-editor, avs-admin, super-admin |
feedback |
avs-viewer, avs-editor, avs-admin, super-admin |
sessions |
avs-viewer, avs-editor, avs-admin, super-admin |
feedback_export |
avs-admin, super-admin |
quality_monitor |
super-admin |
Features ohne Eintrag in der Map (z.B. Dashboard, Chat) sind fuer alle eingeloggten Benutzer sichtbar.
avs-admin Bypass¶
Im require_role-Check haben sowohl super-admin als auch avs-admin
eine Sonderstellung: Beide umgehen die rollenspezifische Pruefung. Das
bedeutet, dass ein avs-admin auch auf Seiten zugreifen kann, die
eigentlich avs-editor erfordern (z.B. Dokumente).
Der Unterschied zu super-admin liegt darin, dass avs-admin nicht
den Feature-Gate-Check in has_feature() umgeht. Features, die nur
fuer super-admin in der FEATURE_ROLE_MAP eingetragen sind (z.B.
settings, audit_log), bleiben fuer avs-admin gesperrt.
Rollenverwaltung in Keycloak¶
Die Rollen werden in Keycloak als Realm-Rollen definiert und den Benutzern zugewiesen. Eine Anleitung zur Rollenzuweisung findet sich in der Keycloak/LDAP-Anleitung.