Stammdaten · Stand 2.6.2026
Mandanten und Benutzer pflegen
Top-Tab Bestand.
Mandant anlegen
/admin/mandanten/ → „+ Neuer Mandant”.
Pflicht:
- Slug — URL-Anteil unter
xdsb.eu/m/<slug>/anfrage/. Klein- buchstaben, Ziffern, Bindestriche. Min. 2 Zeichen. - Anzeigename — Kurzname für Listen
- Rechtsregime — DSGVO / KDG (kath.) / DSG-EKD (ev.)
- Kontakt-E-Mail des Verantwortlichen
Optional:
- Offizielle Firmierung — juristische Vollbezeichnung. Wird in offiziellem Schriftverkehr und im Verarbeitungsverzeichnis genutzt. Wird im Mandant-Profil und im Slug-Prefill bevorzugt.
- Kundennummer, Anschrift, Postanschrift, Notizen
- Anfrage-Intake aktiv — Opt-in. Erst dann liefert
/api/m/<slug>den Mandanten-Namen für den Slug-Prefill auf den öffentlichen Formularen aus. Vor der Aktivierung: kein öffentlicher Slug-Lookup, Mandant ist nicht öffentlich auffindbar.
Mandant bearbeiten
Alle Stammdaten — auch Slug und Anzeigename — sind im
Detail-View nachträglich editierbar. Bei Slug-Wechsel alte URLs
brechen (/m/<alt>/anfrage/ → 404); Hinweistext warnt.
Benutzer einladen
Mandanten-Detail → „Nutzer einladen”:
- E-Mail, Name, Rolle (
mandant_adminodermandant_user) - Optional persönliche Nachricht für die Einladungs-Mail
- „Einladen” → Magic-Link-Mail geht raus, 7 Tage gültig
- Status der Einladung: Pille „Eingeladen · YYYY-MM-DD” in der Nutzer-Liste
Resend möglich, solange accepted_at IS NULL. Bei jedem Resend
wird der Token erneuert und das Versanddatum aktualisiert.
Versand-Historie
Jeder Einladungs-Versand (initial + resends) wird im Audit-Log
festgehalten. Im Benutzer-Detail unter /admin/benutzer/?id=<id>
neben „Einladung gesendet” klicken: „Versand-Historie anzeigen” —
Tabelle mit Zeitpunkt, Aktion (initial / resend) und Aktor-Namen.
Benutzer deaktivieren
/admin/benutzer/ → Detail → „Deaktivieren”:
is_active = False(Soft-Delete)- Login ist sofort blockiert
- Benutzer bekommt Info-Mail
- Reaktivierung jederzeit möglich
Benutzer hart löschen
Erlaubt nur in zwei Konstellationen:
- Pending Einladung (
accepted_at IS NULL) — der Empfänger hat die Einladung nie eingelöst, der Datensatz ist isoliert. - Deaktiviertes Konto ohne eigene Tickets/TicketEvents — wer nach der Deaktivierung nichts hinterlassen hat, ist sauber entfernbar.
Aktive Konten oder solche mit dranhängenden Vorgängen bleiben deaktiviert; ein Hard-Delete bricht sonst Datenintegrität.
FK-Cleanup-Strategie:
- Notifications des Users → DELETE
- UserPermissions → DELETE
- AuditLog.actor_user_id → SET NULL (Trail bleibt erhalten, Aktor anonymisiert — datenschutzkonformer als Audit-Delete)
UI: roter „Endgültig löschen”-Block im Detail. Button wird erst aktiv, wenn die genaue E-Mail-Adresse eingetippt wurde.