"Stop the hammering!"

master
rob 2 years ago
parent a543ac3d49
commit e8af895095

@ -31,6 +31,7 @@ class AuthController extends SiteController {
this.dtp.app.use('/auth', router);
const authRequired = this.dtp.services.session.authCheckMiddleware({ requireLogin: true });
const authRequiredNoRedirect = this.dtp.services.session.authCheckMiddleware({ requireLogin: true, useRedirect: false });
router.post(
'/otp/enable',
@ -59,7 +60,7 @@ class AuthController extends SiteController {
router.get(
'/socket-token',
authRequired,
authRequiredNoRedirect,
limiterService.create(limiterService.config.auth.getSocketToken),
this.getSocketToken.bind(this),
);

@ -46,14 +46,18 @@ class SessionService extends SiteService {
options = Object.assign({
requireLogin: true,
requireAdmin: false,
useRedirect: true,
loginUri: '/welcome/login',
}, options);
return async (req, res, next) => {
if (options.requireLogin && !req.user) {
req.session.loginReturnTo = req.url;
await this.saveSession(req);
this.log.info('redirecting to login', { returnTo: req.url });
return res.redirect(options.loginUri);
if (options.useRedirect) {
req.session.loginReturnTo = req.url;
await this.saveSession(req);
this.log.info('redirecting to login', { returnTo: req.url });
return res.redirect(options.loginUri);
}
return next(new SiteError(403, 'Must sign in to continue'));
}
if (options.requireAdmin && (!req.user || !req.user.flags.isAdmin)) {
return next(new SiteError(403, 'Administrator privileges are required'));

Loading…
Cancel
Save