Rollen
Zweck
Rollen (Role) gruppieren Berechtigungen und werden über Assignment polymorph an Mitarbeiter, Services, Dashboards, Schulungen und Mailboxen vergeben. Eine Rolle kennt fuenf Ziel-Typen (Assignment.assignableType):
Employee— Rolle wird einem Mitarbeiter zugeordnet.Service— Rolle wird für einen Service freigeschaltet.Dashboard— Rolle bekommt das Dashboard zu sehen.Course— Rolle erhaelt Schulungs-Zuteilung.Mailbox— Rolle erhaelt Mailbox-Zugriff (Bulk-Action verfuegbar).
Voraussetzungen
Berechtigungen (CASL)
Frontend-Page-Guard:
| Action | Subject |
|---|---|
view | FE_Role, Role |
create/update/delete | Role |
Tab-Subjects:
| Tab | Sub-Pfad | Subject |
|---|---|---|
| Mitarbeiter | /roles/:id/employees | Assignment:view, Employee:view |
| Services | /roles/:id/services | Assignment:view, Service:view |
| Dashboards | /roles/:id/dashboards | Assignment:view, Dashboard:view |
| Schulungen | /roles/:id/courses | Assignment:view, Course:view |
| Mailboxen | /roles/:id/mailboxes | Assignment:view, Mailbox:view |
Schritt-für-Schritt-Anleitung
Rolle anlegen
- Rollen (
/roles) → + Neu. - Name und Beschreibung pflegen.
- Änderungen werden automatisch gespeichert.
Mitarbeiter zur Rolle zuweisen
- Tab Mitarbeiter öffnen (
/roles/:id/employees). - Zuweisung hinzufuegen —
POST /api/assignmentsmitassignableType=Employee. - Mitarbeiter erhalten über die Rolle die hinterlegten CASL-Permissions.
Bulk-Mailbox-Zugriff vergeben
Auf dem Tab Mailboxen existiert ein RoleBulkMailboxAccessButton — vergibt Mailbox-Zugriff an alle Mitarbeiter einer Rolle in einem Schritt.

Toolbar (Detail-Seite)
Schlanke Toolbar oben rechts:
| Icon | Aktion (aria-label) | CASL | Wirkung |
|---|---|---|---|
| ← | Zurückgehen | — | Zurück zur Liste. |
| 🏠 | Zur Startseite gehen | — | Springt auf das Dashboard / /. |
| ⏮/◀/▶/⏭ | Pagination | — | Navigation durch die gefilterte Liste — Massen-Bearbeitung ohne Liste-Sprung. |
Globale Floating-Drawer (links)
Wie auf jeder Detail-Seite verfuegbar — siehe Floating-Quickbar:
- KAL. (Mini-Kalender)
- ZEIT (Persoenliche Wochen-Arbeitszeit)
- ARBEIT (Eigene bevorstehende Aufträge)
UI-Elemente
Button: „+ Neu"
Listenseite. Erfordert create:Role.
Button: „RoleBulkMailboxAccessButton"
Tab Mailboxen. Vergibt Mailbox-Zugriff an alle Mitglieder der Rolle in einem Klick.
Button: „RoleAssignmentButton"
Pro Sub-Tab. Erstellt einzelne Assignment-Einträge.
Felder und Eingaben
| Feldname | Pflicht | Datentyp | Wirkung beim Ausfuellen | Voraussetzung |
|---|---|---|---|---|
name | ja | String (min. 1) | Anzeige in Auswahllisten und Berechtigungs-Reports. | — |
description | nein | TEXT | Erläuterung der Rolle (z. B. „Außendienst Stufe 1"). | — |
status | ja | active/inactive | inactive blendet die Rolle in Auswahllisten aus, bestehende Assignments bleiben erhalten. | — |
isDefaultForNewEmployees | nein | Boolean | Wenn aktiv, wird diese Rolle beim Anlegen eines neuen Mitarbeiters automatisch zugewiesen. Mehrere Default-Rollen sind erlaubt — alle aktiven Default-Rollen werden zugewiesen. | — |
Sub-Felder pro Assignment
| Feldname | Datentyp | Wirkung |
|---|---|---|
roleId | UUID | Rolle. |
assignableId | UUID | Ziel-Datensatz. |
assignableType | Enum | Employee / Service / Dashboard / Course / Mailbox. |
Wiederverwendbare Konzepte
- Berechtigungen verstehen (CASL) — Rollen sind die Mandanten-Komponente, die Keycloak-Rollen mit CASL-Subjects verbindet.
- Polymorpher Parent-Pattern —
Assignment.assignableTypeist ein klassisches Polymorph-Beispiel.
Tab „Custom Tiles" (Welle 114)
Am Rollen-Detail steht ein Tab Custom Tiles mit Count-Badge — sofern die Berechtigung view:CustomNavigationTileAssignment vorhanden ist. Hier lassen sich Eigene Navigations-Kacheln direkt einer Rolle zuweisen, ohne Mitarbeiter-für-Mitarbeiter zu pflegen. Bereits zugewiesene Tiles sind im Picker deaktiviert.
Verknüpfungen zu anderen Modulen
- Mitarbeiter (
/employees) — TabRollenzeigt Rollen-Zuweisungen. - Services — Service-spezifische Rollen-Sichtbarkeit.
- Dashboards — Dashboard-Sichtbarkeit pro Rolle.
- Schulungen — Pflicht-/Empfohlene Kurse pro Rolle.
- Mailboxen — Mailbox-Zugriff pro Rolle (Bulk-Aktion).
- Custom Tiles — Tab am Rollen-Detail (Welle 114).
API/Schnittstellen
| Methode | Endpoint | Zweck | CASL |
|---|---|---|---|
GET | /api/roles | Liste | view Role |
GET | /api/roles/:id | Detail | view Role |
POST | /api/roles | Anlegen | create Role |
PATCH | /api/roles/:id | Ändern | update Role |
DELETE | /api/roles/:id | Soft-Delete | delete Role |
GET | /api/assignments?roleId=:id | Zuweisungen | view Assignment |
POST | /api/assignments | Zuweisung anlegen | create Assignment |
DELETE | /api/assignments/:id | Zuweisung löschen | delete Assignment |
Versionshinweise
- 2026-04-29: Initiale Veröffentlichung mit FE-Tiefen-Standard.
- 2026-05-12 (Wellen 114/115): Neues Feld
isDefaultForNewEmployees(auto-Zuweisung bei neuem Mitarbeiter). Neuer Tab Custom Tiles am Rollen-Detail mit Count-Badge.