ROLLEN
ROLLEN
Das ROLLEN-Plugin steuert:
- Benutzer des Mandanten (Login-Konten)
- Rollen (z.B. „Admin“, „Verwaltung“, „Helfer“)
- Berechtigungen je Rolle (z.B. „Tickets sehen“, „Verträge bearbeiten“)
- Sektionen im Menü (welche Plugins/Items für welche Rolle sichtbar sind)
- allgemeine Einstellungen des Mandanten (Logo, Branding, UI-Präferenzen)
- das eigene Profil (Sprache, Anzeige, Passwort)
Es ist die zentrale Stelle für „Wer darf was?“ und gleichzeitig für globale Mandanten-Einstellungen.
- Neuen Benutzer anlegen
- Benutzer einer Rolle zuordnen
- Rollen anlegen / umbenennen / löschen
- Berechtigungen einer Rolle pflegen
- Menü-Struktur (Sektionen) konfigurieren
- Mandanten-Logo hochladen
- Eigenes Profil pflegen
1) Benutzer verwalten
#### Liste & neuer Benutzer
1. Admin → Benutzer (/settings/admin/users).
2. „Neu“ (/settings/admin/users/new).
3. Benutzername, Anzeigename, E-Mail, Passwort, Rolle wählen.
4. Speichern (POST /settings/admin/users).
#### Bearbeiten / Passwort zurücksetzen
GET /settings/admin/users/{username}/edit→ Felder ändern →POST /settings/admin/users/{username}.
2) Rollen verwalten
1. Admin → Rollen (/settings/admin/roles).
2. „Neu“ (/settings/admin/roles/new) oder bestehende Rolle bearbeiten.
3. POST /settings/admin/roles zum Anlegen, POST /settings/admin/roles/{name} zum Speichern, POST /settings/admin/roles/{name}/delete zum Löschen.
3) Berechtigungen einer Rolle (binär)
1. Admin → Berechtigungen (/settings/admin/permissions/{roleName}).
2. Sie sehen alle bekannten Berechtigungen, jeweils mit einer Checkbox (an/aus):
- An – die Rolle darf die Funktion nutzen
- Aus – keine Berechtigung (seit 15.5 gibt es keine Stufen wie VIEW/EDIT mehr)
3. Haken anpassen → speichern (POST /settings/admin/permissions/{roleName}).
Zusätzlich lassen sich ganze Sektionen pro Rolle ausblenden (Sektions-Switch je Sektions-Block in der gleichen Ansicht).
4) Menü-Sektionen
Sektionen bestimmen, was im linken Menü erscheint und in welcher Gruppierung.
Wichtige Pfade:
GET /settings/admin/sections– Übersicht- Plugins-Block:
/settings/admin/sections/plugins - User-Block:
/settings/admin/sections/user - Administrations-Untergruppen:
/settings/admin/sections/administration/content/settings/admin/sections/administration/contracts/settings/admin/sections/administration/users/settings/admin/sections/administration/mail/settings/admin/sections/administration/system
Pro Block können Sie Items aktivieren / deaktivieren, sortieren und Rollen zuweisen, die das Item sehen dürfen.
5) Allgemeine Einstellungen (Branding, Logo, UI)
1. Admin → Allgemein (/settings/admin/general).
2. Optionen:
- Logo hochladen →
POST /settings/admin/general/logo/upload - Logo ausliefern →
GET /settings/admin/general/logo/serve - Logo entfernen →
POST /settings/admin/general/logo/delete - Sonstige Einstellungen →
POST /settings/admin/general/save
3. UI-Präferenzen einzelner Nutzer (z.B. ein-/ausgeklappte Sidebar, Seitenbreite) werden über kleine Endpunkte gespeichert:
/settings/admin/general/ui/pref/settings/admin/general/ui/pref/pageWidth
6) Eigenes Profil
1. Profil im Menü (üblicherweise unter dem eigenen Namen).
2. Anzeigename, Passwort, Sprache, optionale Einstellungen pflegen.
3. Datumsformat (Issue #362): Im User-Menü (Sidebar) lässt sich das Datumsformat zwischen DE (dd.MM.yyyy) und US (MM/dd/yyyy) umschalten.
- Gespeichert wird die Präferenz
ui.dateFormat(je Nutzer, Tabelleuser_pref). - Ohne explizite Präferenz gilt die Request-Locale: Deutsch → DE, Englisch → US, sonst DE.
- Die Uhrzeit bleibt in beiden Modi 24-stündig; ICS-Export (YYYYMMDD/UTC) und DB-Speicherformat (ISO) werden nicht verändert.
Binäre Berechtigungen
Berechtigungen sind je Rolle nur an oder aus (früher: Stufen NONE/VIEW/EDIT). In der Datenbank: role_permission_level.granted (boolean), die level-Spalte und die Legacy-Tabelle role_permission sind nicht mehr vorhanden (Migrations V52/V53).
Fail-open für unkonfigurierte Keys
Ein Permission-Key, für den noch keine Rolle gespeichert hat (keine Zeile in role_permission_level), gilt als unkonfiguriert und bleibt immer erlaubt – neu deklarierte Keys brechen daher keine bestehenden Mandanten. Nach dem ersten Speichern der Rollen-Berechtigungen existiert für alle angezeigten Keys eine Zeile (mit oder ohne Haken); der Key ist dann konfiguriert und Nutzer ohne Haken werden an den @RequirePermission-Endpoints verwiesen (/error/access-denied).
Mehrere Rollen (Union)
Ein Benutzer kann mehreren Rollen zugeordnet sein (user_role). Die Rechte sind die Union über alle Rollen: Der Zugriff ist erlaubt, wenn mindestens eine der Rollen des Nutzers den Haken hat. Dieselbe Union gilt für die Sektions-Sichtbarkeit: Eine Sektion ist sichtbar, solange mindestens eine Rolle sie nicht ausblendet.
Sektions-Sichtbarkeit
In der Berechtigungs-UI lassen sich ganze Sektionen (z. B. „Verträge“) pro Rolle per Sektions-Switch ausblenden. Ausgeblendete Sektionen:
- erscheinen in der Berechtigungs-Liste dieser Rolle nicht (entsprechende Nav-Items sind für diese Rolle ausgeblendet) und
- entfernen die zugehörige Menü-Sektion aus der Sidebar des Nutzers (z. B. „Stammdaten“, wenn alle Sektionen mieter/vermieter/inventar/vertrag ausgeblendet sind; mehrere Rollen werden unioniert).
Ohne Einträge in role_section_visibility sind alle Sektionen standardmäßig sichtbar.
ROLLEN deaktiviert
Ist das ROLLEN-Plugin für einen Mandanten deaktiviert, werden alle @RequirePermission-Prüfungen übersprungen (keine Rechte-Gates, Fail-open). Die ROLLEN-Verwaltung (Nutzer/Rollen/Berechtigungen/Sektionen) ist in der Navigation dann nicht erreichbar.
„Ich sehe ein Plugin nicht“
- Prüfen Sie, ob das Plugin für den Mandanten aktiviert ist.
- In den Sektionen ist es ggf. nicht der Rolle zugeordnet.
- Berechtigungen prüfen.
„Niemand kann sich mehr anmelden“
- Eventuell wurde die Admin-Rolle entfernt. Stellen Sie sicher, dass mindestens ein Benutzer Vollzugriff hat. Im Notfall hilft nur ein DB-Eingriff durch den Hoster.
„Logo wird nicht angezeigt“
- Datei korrekt hochgeladen?
- Browser-Cache leeren.
Allgemein (/settings/admin/general):
GET /settings/admin/generalPOST /settings/admin/general/savePOST /settings/admin/general/logo/uploadGET /settings/admin/general/logo/servePOST /settings/admin/general/logo/deleteGET /settings/admin/general/ui/prefPOST /settings/admin/general/ui/prefGET /settings/admin/general/ui/pref/pageWidthPOST /settings/admin/general/ui/pref/pageWidth
Profil / Datumsformat (/rollen/profile):
POST /rollen/profile/theme(Theme: light/dark/system)POST /rollen/profile/dateformat(Datumsformat: de/us)
Benutzer (/settings/admin/users):
GET /settings/admin/usersGET /settings/admin/users/newPOST /settings/admin/usersGET /settings/admin/users/{username}/editPOST /settings/admin/users/{username}
Rollen (/settings/admin/roles):
GET /settings/admin/rolesGET /settings/admin/roles/newPOST /settings/admin/rolesGET /settings/admin/roles/{name}/editPOST /settings/admin/roles/{name}POST /settings/admin/roles/{name}/delete
Berechtigungen (/settings/admin/permissions):
GET /settings/admin/permissions/{roleName}POST /settings/admin/permissions/{roleName}
Sektionen (/settings/admin/sections):
GET/POST /settings/admin/sectionsGET/POST /settings/admin/sections/pluginsGET/POST /settings/admin/sections/userGET/POST /settings/admin/sections/administration/contentGET/POST /settings/admin/sections/administration/contractsGET/POST /settings/admin/sections/administration/usersGET/POST /settings/admin/sections/administration/mailGET /settings/admin/sections/administration/system
- ROLLEN ist Voraussetzung für die Rechte-Prüfungen (
@RequirePermission) in anderen Plugins. - Vergeben Sie Berechtigungen so eng wie möglich – sicherer als „alle dürfen alles“.
- Ändern Sie Sektionen vorsichtig: Sie steuern damit das Menü für alle Nutzer.