15 lines
963 B
SQL
15 lines
963 B
SQL
-- Ergaenzung fuer vollstaendige Loesch-/Editierbarkeit (siehe app/admin/routes.py):
|
|
--
|
|
-- users.deleted_at: ein Benutzerkonto kann nicht immer per hartem SQL-DELETE
|
|
-- entfernt werden, weil audit_log.user_id (bewusst, siehe 0001_initial.sql)
|
|
-- OHNE ON DELETE CASCADE auf users(id) verweist -- das manipulationssichere
|
|
-- Audit-Log darf durch das Loeschen eines Kontos nicht nachtraeglich
|
|
-- veraendert oder seiner Zuordnung beraubt werden (jede Aenderung an
|
|
-- audit_log-Zeilen wuerde die Hash-Chain brechen bzw. ist durch DB-Trigger
|
|
-- ohnehin hart verboten). Ein Konto mit vorhandener Audit-Historie (praktisch
|
|
-- jedes jemals eingeloggte Konto) wird deshalb beim "Loeschen" stattdessen
|
|
-- deaktiviert, anonymisiert (Benutzername/Passwort/TOTP-Secret geloescht)
|
|
-- und hier markiert; nur ein Konto OHNE jede Audit-Historie wird tatsaechlich
|
|
-- per SQL-DELETE entfernt. Siehe delete_user() in app/admin/routes.py.
|
|
ALTER TABLE users ADD COLUMN deleted_at TEXT;
|