some pages redirect after logging in

merge-requests/208/head
fatchan 5 years ago
parent db963d4607
commit 3c327862d9
  1. 11
      controllers/forms.js
  2. 11
      helpers/isloggedin.js
  3. 11
      models/forms/login.js
  4. 3
      models/pages/login.js

@ -14,6 +14,7 @@ const express = require('express')
, dismissReports = require(__dirname+'/../models/forms/dismiss-report.js')
, loginAccount = require(__dirname+'/../models/forms/login.js')
, registerAccount = require(__dirname+'/../models/forms/register.js')
, hasPerms = require(__dirname+'/../helpers/haspermsmiddleware.js')
, numberConverter = require(__dirname+'/../helpers/number-converter.js')
, banCheck = require(__dirname+'/../helpers/bancheck.js');
@ -160,7 +161,8 @@ router.post('/board/:board/posts', Boards.exists, banCheck, numberConverter, asy
|| req.body.dismiss
|| req.body.spoiler
|| req.body.ban
|| req.body.global_ban)) {
|| req.body.global_ban
|| req.body.preserve_post)) {
errors.push('Must select an action')
}
if (req.body.report && (!req.body.reason || req.body.reason.length === 0)) {
@ -227,4 +229,11 @@ router.post('/board/:board/posts', Boards.exists, banCheck, numberConverter, asy
});
//unban
router.post('/board/:board/bans', Boards.exists, banCheck, hasPerms, numberConverter, async (req, res, next) => {
//TODO: unbans
});
module.exports = router;

@ -1,6 +1,13 @@
'use strict';
module.exports = (req, res, next) => {
if (req.session.authenticated === true) return next()
res.redirect('/login')
if (req.session.authenticated === true) {
return next();
}
const redirect = req.params.board;
if (redirect) {
res.redirect(`/login?redirect=${redirect}`);
} else {
res.redirect('/login');
}
}

@ -7,6 +7,7 @@ module.exports = async (req, res, next) => {
const username = req.body.username.toLowerCase();
const password = req.body.password;
const redirect = req.body.redirect;
//fetch an account
let account;
@ -21,7 +22,7 @@ module.exports = async (req, res, next) => {
return res.status(403).render('message', {
'title': 'Forbidden',
'message': 'Incorrect username or password',
'redirect': '/login'
'redirect': redirect ? `/login?redirect=${redirect}` : '/login'
});
}
@ -44,18 +45,14 @@ module.exports = async (req, res, next) => {
req.session.authenticated = true;
//successful login
return res.render('message', {
'title': 'Success',
'message': `Welcome, ${username}`,
'redirect': '/'
});
return res.redirect(redirect ? `/${redirect}/manage` : '/');
}
return res.status(403).render('message', {
'title': 'Forbidden',
'message': 'Incorrect username or password',
'redirect': '/login'
'redirect': redirect ? `/login?redirect=${redirect}` : '/login'
});
}

@ -4,7 +4,8 @@ module.exports = (req, res, next) => {
//render the page
res.render('login', {
csrf: req.csrfToken()
csrf: req.csrfToken(),
redirect: req.query.redirect,
});
}

Loading…
Cancel
Save