Admin-Panel Korrektur

Vorbereitung Serverimplementation
Dieser Commit ist enthalten in:
HG
2025-12-29 20:30:43 +00:00
committet von Claude Project Manager
Ursprung 50da44aabc
Commit ad7432c833
19 geänderte Dateien mit 709 neuen und 31 gelöschten Zeilen

Datei anzeigen

@ -290,35 +290,44 @@ router.delete('/users/:id', (req, res) => {
return res.status(400).json({ error: 'Sie können sich nicht selbst löschen' });
}
// Alle Referenzen auf den Benutzer auf NULL setzen oder löschen
// Tasks
// Alle Referenzen auf den Benutzer behandeln
// Tasks - assigned_to und created_by auf NULL setzen (erlaubt NULL)
db.prepare('UPDATE tasks SET assigned_to = NULL WHERE assigned_to = ?').run(userId);
db.prepare('UPDATE tasks SET created_by = NULL WHERE created_by = ?').run(userId);
// Kommentare
db.prepare('UPDATE comments SET user_id = NULL WHERE user_id = ?').run(userId);
// Task-Assignees löschen (Mehrfachzuweisung)
db.prepare('DELETE FROM task_assignees WHERE user_id = ?').run(userId);
// Historie
db.prepare('UPDATE history SET user_id = NULL WHERE user_id = ?').run(userId);
// Kommentare löschen (user_id NOT NULL)
db.prepare('DELETE FROM comments WHERE user_id = ?').run(userId);
// Vorschläge
db.prepare('UPDATE proposals SET created_by = NULL WHERE created_by = ?').run(userId);
// Historie löschen (user_id NOT NULL)
db.prepare('DELETE FROM history WHERE user_id = ?').run(userId);
// Vorschläge: Votes zuerst löschen, dann Vorschläge des Benutzers
db.prepare('DELETE FROM proposal_votes WHERE user_id = ?').run(userId);
db.prepare('DELETE FROM proposals WHERE created_by = ?').run(userId);
// approved_by kann NULL sein
db.prepare('UPDATE proposals SET approved_by = NULL WHERE approved_by = ?').run(userId);
// Projekte
// Projekte - created_by auf NULL setzen (erlaubt NULL)
db.prepare('UPDATE projects SET created_by = NULL WHERE created_by = ?').run(userId);
// Anhänge
// Anhänge - uploaded_by auf NULL setzen (erlaubt NULL)
db.prepare('UPDATE attachments SET uploaded_by = NULL WHERE uploaded_by = ?').run(userId);
// Links
// Links - created_by auf NULL setzen (erlaubt NULL)
db.prepare('UPDATE links SET created_by = NULL WHERE created_by = ?').run(userId);
// Login-Audit (kann gelöscht werden)
// Applications - created_by auf NULL setzen (erlaubt NULL)
db.prepare('UPDATE applications SET created_by = NULL WHERE created_by = ?').run(userId);
// Login-Audit löschen
db.prepare('DELETE FROM login_audit WHERE user_id = ?').run(userId);
// Votes des Benutzers löschen
db.prepare('DELETE FROM proposal_votes WHERE user_id = ?').run(userId);
// Benachrichtigungen löschen (wird auch durch CASCADE gelöscht, aber sicherheitshalber)
db.prepare('DELETE FROM notifications WHERE user_id = ?').run(userId);
db.prepare('UPDATE notifications SET actor_id = NULL WHERE actor_id = ?').run(userId);
// Benutzer löschen
db.prepare('DELETE FROM users WHERE id = ?').run(userId);