fix disabled users being able to get to info page
This commit is contained in:
+10
-1
@@ -362,10 +362,19 @@ infoPageRouter.post(LOGIN_ROUTE, (req, res) => {
|
|||||||
// Token-based authentication (using any valid user token)
|
// Token-based authentication (using any valid user token)
|
||||||
const token = (req.body.token || "").trim();
|
const token = (req.body.token || "").trim();
|
||||||
const user = getUser(token); // returns undefined if invalid
|
const user = getUser(token); // returns undefined if invalid
|
||||||
if (user) {
|
|
||||||
|
if (user && !user.disabledAt) {
|
||||||
|
// Only allow access if user exists AND is not disabled
|
||||||
req.session!.infoPageAuthed = true;
|
req.session!.infoPageAuthed = true;
|
||||||
return res.redirect("/");
|
return res.redirect("/");
|
||||||
|
} else if (user && user.disabledAt) {
|
||||||
|
// User exists but is disabled
|
||||||
|
const reason = user.disabledReason || "Your account has been disabled";
|
||||||
|
return res
|
||||||
|
.status(401)
|
||||||
|
.send(renderLoginPage(res.locals.csrfToken, `Access denied: ${reason}`));
|
||||||
} else {
|
} else {
|
||||||
|
// User doesn't exist
|
||||||
return res
|
return res
|
||||||
.status(401)
|
.status(401)
|
||||||
.send(renderLoginPage(res.locals.csrfToken, "Invalid token. Please try again."));
|
.send(renderLoginPage(res.locals.csrfToken, "Invalid token. Please try again."));
|
||||||
|
|||||||
Reference in New Issue
Block a user