Zum Inhalt

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-admin im require_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:

  1. super-admin Bypass: Hat der Benutzer die Rolle super-admin? Falls ja, ist der Zugriff sofort gewaehrt.
  2. Basis-Features: Dashboard, Dokumente, Feedback, Sessions und Chat sind immer verfuegbar (keine Lizenz erforderlich). Hier greift nur der Rollen-Check.
  3. 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.