eb57a6eccfc3aac64f801cda54bf6af4aa776474
- Neue Seite admindash (pgAdminDash) mit Kontenuebersicht: Status, Patientenanzahl, Sperren/Entsperren/Loeschen mit Pflicht-Begruendung - "Loeschen" ist bewusst Soft-Delete: Konto wird gesperrt (aktiv=0) und alle aktiven Patienten werden ueber die bestehende Archivierungs- Logik archiviert (10/30 Jahre Aufbewahrungsfrist, § 630f/§ 199 BGB) statt physisch geloescht zu werden - Bestehende Hard-Delete-Route (DELETE /api/nutzer/<uid>) lehnt jetzt ab, solange das Konto noch Patienten besitzt - schliesst die Luecke verwaister Patientendatensaetze - nutzer.aktiv wird bei jedem Request geprueft -> Sperren wirkt sofort, auch bei bereits offener Sitzung, ohne zusaetzlichen Session-Store - Neue Tabelle admin_audit_log (unveraenderlich, analog notizen_verlauf): jede Sperr-/Entsperr-/Loesch-/Export-Aktion mit Admin, Zeitstempel, Ziel und Pflicht-Begruendung protokolliert - DSGVO-Export (POST /api/admin/patienten/<pid>/dsgvo-export): admin-only, verlangt Rechtsgrundlage/Aktenzeichen, liefert ZIP mit allen Datensaetzen (daten.json) plus Dokumenten/Briefen/Fotos, in-memory ohne Temp-Dateien - Selbst-Sperrung/-Loeschung durch den handelnden Admin blockiert (kein Lockout-Risiko) - GET /api/nutzer liefert jetzt zusaetzlich patienten_anzahl Verifiziert: API-Tests fuer alle Guards (Begruendung-Pflicht, Self-Lock- Block, Hard-Delete-Block bei zugeordneten Patienten, sofortige Session- Sperrung, 403 fuer Nicht-Admins), ZIP-Inhalt geprueft, Audit-Log-Eintraege korrekt, Dashboard + Modal per Playwright-Screenshot visuell verifiziert. Dritter und letzter Baustein aus refactoring.md.
Languages
Python
48%
TypeScript
33.6%
HTML
17.9%
Dockerfile
0.2%
CSS
0.2%