7d3cff4d2d896821e701d5cd118e443d59f22c42
Nutzerverwaltung (Basis-CRUD + Sperren/Entsperren/Soft-Delete-mit- Archivierung/Abo-Freischalten) und Admin-Router 1:1-Logik-Port aus der alten App (_berechne_archiv_frist/_archiviere_patient -> archivierung.py, _add_monate fuer die Abo-Verlaengerung). "Loeschen" bleibt bewusst ein Soft-Delete: Konto wird gesperrt, aktive Patienten werden archiviert (§ 630f BGB Aufbewahrungspflicht) statt hart geloescht - zusaetzlich durch die ON DELETE RESTRICT-FK aus Phase 0 strukturell abgesichert. Jede Admin-Aktion verlangt eine Begruendung und wird unveraenderlich im Audit-Log protokolliert. DSGVO-Export buendelt alle Patientendaten + Dateien (Briefe/Dokumente/Foto) als ZIP, generisch ueber alle SQLAlchemy- Modelle serialisiert statt Tabelle fuer Tabelle von Hand. Admin-Router nutzt APIRouter(dependencies=[Depends(require_admin)]) - jede Route automatisch geschuetzt, kein Route-fuer-Route-Vergessen moeglich. Mit echten Kontenlebenszyklen verifiziert: Sperren blockt Login sofort, Selbstsperrung/-loeschung verboten, Hard-Delete nur ohne zugeordnete Patienten moeglich, Soft-Delete archiviert korrekt. Frontend: Admin-Dashboard-Seite (Kontentabelle, Begruendungs-Modal fuer alle Aktionen, DSGVO-Export-Formular, Audit-Log-Liste). Navigation zeigt Admin nur noch Dashboard-relevante Bereiche (Nutzer-Sektionen ausgeblendet, automatische Weiterleitung in beide Richtungen). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Languages
Python
48%
TypeScript
33.6%
HTML
17.9%
Dockerfile
0.2%
CSS
0.2%