Dateien nach "backend/src/routes" hochladen
This commit is contained in:
@@ -65,6 +65,11 @@ router.delete('/users/:id', authenticate, requireAdmin, (req, res) => {
|
|||||||
if (id === req.user.id) return res.status(400).json({ error: 'Du kannst dich nicht selbst löschen' });
|
if (id === req.user.id) return res.status(400).json({ error: 'Du kannst dich nicht selbst löschen' });
|
||||||
const user = db.prepare('SELECT * FROM users WHERE id=?').get(id);
|
const user = db.prepare('SELECT * FROM users WHERE id=?').get(id);
|
||||||
if (!user) return res.status(404).json({ error: 'Benutzer nicht gefunden' });
|
if (!user) return res.status(404).json({ error: 'Benutzer nicht gefunden' });
|
||||||
|
// Sicherstellen dass mindestens ein Admin bleibt
|
||||||
|
if (user.role === 'admin') {
|
||||||
|
const adminCount = db.prepare("SELECT COUNT(*) c FROM users WHERE role='admin'").get().c;
|
||||||
|
if (adminCount <= 1) return res.status(400).json({ error: 'Mindestens ein Administrator muss verbleiben' });
|
||||||
|
}
|
||||||
// Cascade: alle Daten des Users löschen
|
// Cascade: alle Daten des Users löschen
|
||||||
db.prepare('DELETE FROM calculations WHERE user_id=?').run(id);
|
db.prepare('DELETE FROM calculations WHERE user_id=?').run(id);
|
||||||
db.prepare('DELETE FROM orders WHERE user_id=?').run(id);
|
db.prepare('DELETE FROM orders WHERE user_id=?').run(id);
|
||||||
|
|||||||
Reference in New Issue
Block a user