Admin-Panel Korrektur
Vorbereitung Serverimplementation
Dieser Commit ist enthalten in:
committet von
Claude Project Manager
Ursprung
50da44aabc
Commit
ad7432c833
@ -461,7 +461,7 @@ async function createDefaultUsers() {
|
||||
// Admin-Benutzer
|
||||
const adminUser = {
|
||||
username: 'admin',
|
||||
password: '!1Data123',
|
||||
password: 'Kx9#mP2$vL7@nQ4!wR',
|
||||
displayName: 'Administrator',
|
||||
color: '#8B5CF6'
|
||||
};
|
||||
|
||||
@ -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);
|
||||
|
||||
In neuem Issue referenzieren
Einen Benutzer sperren