more admin stuff
This commit is contained in:
14
app/db/migrations/0007_crud_extras.sql
Normal file
14
app/db/migrations/0007_crud_extras.sql
Normal file
@ -0,0 +1,14 @@
|
||||
-- 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;
|
||||
Reference in New Issue
Block a user