feat: enhance hard delete functionality to reassign user-related hunts
This commit is contained in:
@@ -162,8 +162,11 @@ const Users = {
|
|||||||
db.prepare("DELETE FROM sessions WHERE sess LIKE ?").run('%"userId":' + userId + '%');
|
db.prepare("DELETE FROM sessions WHERE sess LIKE ?").run('%"userId":' + userId + '%');
|
||||||
},
|
},
|
||||||
|
|
||||||
hardDeleteUser(userId) {
|
hardDeleteUser(userId, reassignTo) {
|
||||||
this._scrubUserContent(userId);
|
this._scrubUserContent(userId);
|
||||||
|
if (reassignTo) {
|
||||||
|
db.prepare('UPDATE hunts SET created_by = ? WHERE created_by = ?').run(reassignTo, userId);
|
||||||
|
}
|
||||||
db.prepare('DELETE FROM scans WHERE user_id = ?').run(userId);
|
db.prepare('DELETE FROM scans WHERE user_id = ?').run(userId);
|
||||||
db.prepare('UPDATE packages SET first_scanned_by = NULL WHERE first_scanned_by = ?').run(userId);
|
db.prepare('UPDATE packages SET first_scanned_by = NULL WHERE first_scanned_by = ?').run(userId);
|
||||||
db.prepare('UPDATE packages SET last_scanned_by = NULL WHERE last_scanned_by = ?').run(userId);
|
db.prepare('UPDATE packages SET last_scanned_by = NULL WHERE last_scanned_by = ?').run(userId);
|
||||||
|
|||||||
@@ -203,7 +203,7 @@ router.post('/users/:id/hard-delete', requireAdmin, (req, res) => {
|
|||||||
return res.redirect('/admin');
|
return res.redirect('/admin');
|
||||||
}
|
}
|
||||||
|
|
||||||
Users.hardDeleteUser(userId);
|
Users.hardDeleteUser(userId, req.session.userId);
|
||||||
req.session.flash = { type: 'success', message: `Account "${user.display_name || user.username}" has been permanently removed.` };
|
req.session.flash = { type: 'success', message: `Account "${user.display_name || user.username}" has been permanently removed.` };
|
||||||
res.redirect('/admin');
|
res.redirect('/admin');
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user