fix: improve user deletion process and session handling
Build Images and Deploy / Update-PROD-Stack (push) Successful in 29s

This commit is contained in:
2026-03-20 13:53:07 -04:00
parent ea537ff293
commit b7f3394448
3 changed files with 9 additions and 5 deletions
+5 -2
View File
@@ -143,8 +143,11 @@ const Users = {
}, },
deleteUser(userId) { deleteUser(userId) {
db.prepare('UPDATE users SET display_name = ?, password_hash = ?, is_admin = 0, is_organizer = 0 WHERE id = ?') // get username from userId before scrambling
.run('[deleted]', '', userId); const user = this.findById(userId);
const scrambled = `_deleted_${user.username}_${Date.now()}`;
db.prepare('UPDATE users SET username = ?, display_name = ?, password_hash = ?, is_admin = 0, is_organizer = 0 WHERE id = ?')
.run(scrambled, '[deleted]', '', userId);
db.prepare('UPDATE password_reset_tokens SET used = 1 WHERE user_id = ?').run(userId); db.prepare('UPDATE password_reset_tokens SET used = 1 WHERE user_id = ?').run(userId);
db.prepare("DELETE FROM sessions WHERE sess LIKE ?").run('%"userId":' + userId + '%'); db.prepare("DELETE FROM sessions WHERE sess LIKE ?").run('%"userId":' + userId + '%');
} }
+1 -1
View File
@@ -186,7 +186,7 @@ router.post('/users/:id/delete', requireAdmin, (req, res) => {
} }
Users.deleteUser(userId); Users.deleteUser(userId);
req.session.flash = { type: 'success', message: `Account "${user.username}" has been deleted.` }; req.session.flash = { type: 'success', message: `Account "${user.display_name || user.username}" has been deleted.` };
res.redirect('/admin'); res.redirect('/admin');
}); });
+3 -2
View File
@@ -167,8 +167,9 @@ router.post('/player/:username/delete', requireAuth, (req, res) => {
} }
Users.deleteUser(user.id); Users.deleteUser(user.id);
req.session.destroy(); req.session.destroy(() => {
res.redirect('/'); res.redirect('/');
});
}); });
// ─── Browse all hunts ───────────────────────────────────── // ─── Browse all hunts ─────────────────────────────────────