Docs

ROLLEN

Dokumentation

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, Tabelle user_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/general
  • POST /settings/admin/general/save
  • POST /settings/admin/general/logo/upload
  • GET /settings/admin/general/logo/serve
  • POST /settings/admin/general/logo/delete
  • GET /settings/admin/general/ui/pref
  • POST /settings/admin/general/ui/pref
  • GET /settings/admin/general/ui/pref/pageWidth
  • POST /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/users
  • GET /settings/admin/users/new
  • POST /settings/admin/users
  • GET /settings/admin/users/{username}/edit
  • POST /settings/admin/users/{username}

Rollen (/settings/admin/roles):

  • GET /settings/admin/roles
  • GET /settings/admin/roles/new
  • POST /settings/admin/roles
  • GET /settings/admin/roles/{name}/edit
  • POST /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/sections
  • GET/POST /settings/admin/sections/plugins
  • GET/POST /settings/admin/sections/user
  • GET/POST /settings/admin/sections/administration/content
  • GET/POST /settings/admin/sections/administration/contracts
  • GET/POST /settings/admin/sections/administration/users
  • GET/POST /settings/admin/sections/administration/mail
  • GET /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.