feat: add display name functionality for users and update related views
Build Images and Deploy / Update-PROD-Stack (push) Successful in 29s
Build Images and Deploy / Update-PROD-Stack (push) Successful in 29s
This commit is contained in:
@@ -136,6 +136,25 @@ router.post('/player/:username/password', requireAuth, (req, res) => {
|
||||
res.redirect(`/player/${user.username}`);
|
||||
});
|
||||
|
||||
// ─── Update display name ──────────────────────────────────
|
||||
router.post('/player/:username/display-name', requireAuth, (req, res) => {
|
||||
const user = Users.findByUsername(req.params.username);
|
||||
if (!user || user.id !== req.session.userId) {
|
||||
return res.status(403).render('error', { title: 'Forbidden', message: 'You can only change your own display name.' });
|
||||
}
|
||||
|
||||
const displayName = (req.body.display_name || '').trim();
|
||||
if (displayName.length < 2 || displayName.length > 32) {
|
||||
req.session.flash = { type: 'danger', message: 'Display name must be 2-32 characters.' };
|
||||
return res.redirect(`/player/${user.username}`);
|
||||
}
|
||||
|
||||
Users.setDisplayName(user.id, displayName);
|
||||
req.session.displayName = displayName;
|
||||
req.session.flash = { type: 'success', message: 'Display name updated.' };
|
||||
res.redirect(`/player/${user.username}`);
|
||||
});
|
||||
|
||||
// ─── Delete own account ───────────────────────────────────
|
||||
router.post('/player/:username/delete', requireAuth, (req, res) => {
|
||||
const user = Users.findByUsername(req.params.username);
|
||||
|
||||
Reference in New Issue
Block a user