Files
ssh-jumphost/app/db/migrations/0007_crud_extras.sql
2026-08-20 14:49:19 +02:00

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;