Zum Hauptinhalt springen

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

- Berechtigung `view:Employee` und `view:EmployeeRoleAssignment`. - Für Pflege: `create:EmployeeRoleAssignment`, `delete:EmployeeRoleAssignment`, `view:Role`.

Berechtigungen (CASL)

ActionSubjectWirkungKeycloak-Rolle
viewFE_Employee, EmployeeDetail aufrufbar
view/create/deleteEmployeeRoleAssignmentZuweisung pflegenAPP_SPEAMCORE_VIEW/CREATE/DELETE_EMPLOYEE_ROLE_ASSIGNMENT
viewRoleRollen-AuswahlAPP_SPEAMCORE_VIEW_ROLE

Schritt-für-Schritt-Anleitung

  1. Mitarbeiter (/employees/:id) → Tab Rollen.
  2. + Rolle wählt eine bestehende Rolle, optional mit Abteilung/Standort-Filter.
  3. Aktive Zuweisungen werden zu Keycloak gesynced (APP_SPEAMCORE_* Group-Membership).

Rollen-Tab am Mitarbeiter (Klaus Weber) mit Spalte Rolle, Eintrag „Geschäftsführer" und Button „+ Rolle hinzufügen" (Test-Daten).

Anlege-Pattern (Code-Lookup-basiert)

Beim Klick auf den + Hinzufügen-Button erscheint kein Modal mit Eingabemaske, sondern ein Auswahl-Workflow (customAddButton-Pattern):

  1. Modal mit Suche im Stamm der zu verknüpfenden Entität (z. B. Rolle, Fahrzeug, Kurs).
  2. Anwender wählt einen oder mehrere Einträge.
  3. Pro Auswahl wird ein Assignment-Datensatz erzeugt, der die N:M-Verknüpfung Mitarbeiter ↔ Stamm hält — nicht der Stamm selbst.
  4. Klick auf eine Zeile führt zum Detail des Assignment (Pflege z. B. von Gültigkeitszeitraum, prozentuale Aufteilung).
**Stamm vs Assignment:** Das Löschen einer Verknüpfung (Assignment) entfernt nur die Beziehung zum Mitarbeiter, **nicht** den Stamm. Stamm-Änderungen wirken auf alle Mitarbeiter mit aktiver Verknüpfung — Anpassung etwa der Rolle hat sofort Auswirkung auf alle Mitarbeiter mit dieser Rolle.

Wiederverwendbare Konzepte

Verknuepfungen zu anderen Modulen

API/Schnittstellen

MethodeEndpointZweckCASL
GET/api/employee-role-assignments?filter[employeeId]Listeview EmployeeRoleAssignment
POST/api/employee-role-assignmentsZuweisencreate EmployeeRoleAssignment
DELETE/api/employee-role-assignments/:idAufhebendelete EmployeeRoleAssignment

Versionshinweise

  • 2026-04-30: Initiale Veroeffentlichung.