Abteilungen
Zweck
Abteilungen (Department) gruppieren Mitarbeiter zu organisatorischen Einheiten — z. B. „Aussendienst", „Buchhaltung", „Service Sued". Pro Abteilung pflegen Sie Name, Beschreibung und Status. Über Assignments (5 Sub-Tabs) werden der Abteilung Rollen, Services, Schulungen, Mailboxen und Dashboards zugewiesen — diese Zuweisungen wirken automatisch für alle Mitarbeiter, die der Abteilung angehoeren.
Voraussetzungen
Berechtigungen (CASL)
Frontend-Page-Guard:
| Action | Subject | Keycloak-Rolle |
|---|---|---|
view | FE_Department, Department | — |
create/update/delete | Department | APP_SPEAMCORE_CREATE/UPDATE/DELETE_DEPARTMENT |
Tab-Subjects:
| Tab | Sub-Pfad | Subject |
|---|---|---|
| Rollen | /departments/:id/roles | DepartmentRole:view |
| Services | /departments/:id/services | Service:view |
| Schulungen | /departments/:id/courses | Course:view |
| Mailboxen | /departments/:id/mailboxes | Mailbox:view |
| Dashboards | /departments/:id/dashboards | Dashboard:view |
Schritt-für-Schritt-Anleitung
- Abteilungen (
/departments) → + Neu. - Name (z. B. „Aussendienst Sued") und optional Beschreibung pflegen.
- Status auf
active. - Sub-Tabs nutzen, um der Abteilung Rollen, Services, Schulungen, Mailboxen und Dashboards zuzuweisen.

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)
Felder und Eingaben
| Feldname | Pflicht | Datentyp | Wirkung beim Ausfuellen | Voraussetzung |
|---|---|---|---|---|
name | ja | String | Anzeige in Mitarbeiter-Profilen, Reports und Berechtigungs-Listen. | — |
description | nein | TEXT (HTML-Editor) | Beschreibung der Abteilung — z. B. Aufgaben oder Verantwortlichkeiten. Disabled bei status = inactive. | — |
status | ja | active/inactive | inactive blendet die Abteilung in Mitarbeiter-Auswahllisten aus, bestehende Zuordnungen bleiben. | — |
Wiederverwendbare Konzepte
- Polymorpher Parent-Pattern — Assignments verbinden Department mit Rollen/Services/Courses/Mailboxen/Dashboards.
- Berechtigungen verstehen (CASL)
Verknuepfungen zu anderen Modulen
- Mitarbeiter —
Employee.departmentId. - Rollen (
/roles) — Departments koennen Rollen zugewiesen bekommen (Sub-Tab Rollen). - Services — Sub-Tab Services.
- Schulungen — Sub-Tab Schulungen.
- Mailboxen — Sub-Tab Mailboxen.
- Dashboards — Sub-Tab Dashboards.
Häufige Fehler und Lösungen
| Fehler | Lösung |
|---|---|
| Mitarbeiter erbt nicht die Department-Rolle | Prüfen, ob die Abteilung im Tab Rollen die richtige Rolle zugewiesen hat. Cascade ist nicht automatisch retroaktiv. |
description nicht editierbar | status = inactive — erst auf active zuruecksetzen. |
| Abteilung loescht nicht | Verknuepfte Mitarbeiter haengen daran. Erst Mitarbeiter umziehen oder Abteilung deaktivieren. |
API/Schnittstellen
| Methode | Endpoint | Zweck | CASL |
|---|---|---|---|
GET | /api/departments | Liste | view Department |
GET | /api/departments/:id | Detail | view Department |
POST | /api/departments | Anlegen | create Department |
PATCH | /api/departments/:id | Ändern | update Department |
DELETE | /api/departments/:id | Soft-Delete | delete Department |
Versionshinweise
- 2026-04-29: Initiale Veroeffentlichung mit FE-Tiefen-Standard.