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

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

Loading…
Cancel
Save