Mitarbeiter — Rollen (Sub-Route)
Zweck
Sub-Route /employees/:id/roles listet alle Rollen-Zuweisungen des Mitarbeiters. Pro Eintrag wird einer Rolle eine Abteilung oder ein Standort zugeordnet — die Rolle steuert via CASL (siehe Berechtigungen), welche Aktionen der Mitarbeiter ausführen darf.
Pendant zur Rollen-Sicht: /roles/:id/employees (Welche Mitarbeiter haben diese Rolle).
Voraussetzungen
Berechtigungen (CASL)
| Action | Subject | Wirkung | Keycloak-Rolle |
|---|---|---|---|
view | FE_Employee, Employee | Detail aufrufbar | — |
view/create/delete | EmployeeRoleAssignment | Zuweisung pflegen | APP_SPEAMCORE_VIEW/CREATE/DELETE_EMPLOYEE_ROLE_ASSIGNMENT |
view | Role | Rollen-Auswahl | APP_SPEAMCORE_VIEW_ROLE |
Schritt-für-Schritt-Anleitung
- Mitarbeiter (
/employees/:id) → Tab Rollen. - + Rolle wählt eine bestehende Rolle, optional mit Abteilung/Standort-Filter.
- Aktive Zuweisungen werden zu Keycloak gesynced (
APP_SPEAMCORE_*Group-Membership).

Anlege-Pattern (Code-Lookup-basiert)
Beim Klick auf den + Hinzufügen-Button erscheint kein Modal mit Eingabemaske, sondern ein Auswahl-Workflow (customAddButton-Pattern):
- Modal mit Suche im Stamm der zu verknüpfenden Entität (z. B. Rolle, Fahrzeug, Kurs).
- Anwender wählt einen oder mehrere Einträge.
- Pro Auswahl wird ein Assignment-Datensatz erzeugt, der die N:M-Verknüpfung Mitarbeiter ↔ Stamm hält — nicht der Stamm selbst.
- Klick auf eine Zeile führt zum Detail des Assignment (Pflege z. B. von Gültigkeitszeitraum, prozentuale Aufteilung).
Wiederverwendbare Konzepte
Verknuepfungen zu anderen Modulen
- Mitarbeiter — Eltern-Modul.
- Rollen — Stamm.
- Permission-Editor — globale Pflegeoberflaeche.
API/Schnittstellen
| Methode | Endpoint | Zweck | CASL |
|---|---|---|---|
GET | /api/employee-role-assignments?filter[employeeId] | Liste | view EmployeeRoleAssignment |
POST | /api/employee-role-assignments | Zuweisen | create EmployeeRoleAssignment |
DELETE | /api/employee-role-assignments/:id | Aufheben | delete EmployeeRoleAssignment |
Versionshinweise
- 2026-04-30: Initiale Veroeffentlichung.