wip to Core

master
rob 2 years ago
parent c62ab4702f
commit 590b2c740b

@ -140,6 +140,8 @@ class AuthController extends SiteController {
}
async postLogin (req, res, next) {
const redirectUri = req.session.loginReturnTo || '/';
this.log.debug('starting passport.authenticate', { session: req.session, redirectUri });
passport.authenticate('dtp-local', (error, user/*, info*/) => {
if (error) {
req.session.loginResult = error.toString();
@ -154,7 +156,7 @@ class AuthController extends SiteController {
if (error) {
return next(error);
}
return res.redirect(req.session.returnTo || '/');
return res.redirect(redirectUri);
});
})(req, res, next);
}

@ -15,7 +15,6 @@ const striptags = require('striptags');
const oauth2orize = require('oauth2orize');
const passport = require('passport');
const ensureLoggedIn = require('connect-ensure-login');
const generatePassword = require('password-generator');
@ -62,16 +61,21 @@ class OAuth2Service extends SiteService {
}
attachRoutes (app) {
const { session: sessionService } = this.dtp.services;
const requireLogin = sessionService.authCheckMiddleware({
requireAuth: true,
loginUri: '/welcome/login'
});
app.get(
'/oauth2/authorize',
ensureLoggedIn.ensureLoggedIn('/welcome/login'),
requireLogin,
this.server.authorize(this.processAuthorize.bind(this)),
this.renderAuthorizeDialog.bind(this),
);
app.post(
'/oauth2/authorize/decision',
ensureLoggedIn.ensureLoggedIn('/welcome/login'),
requireLogin,
this.server.decision(),
);

@ -48,10 +48,12 @@ class SessionService {
options = Object.assign({
requireLogin: true,
requireAdmin: false,
loginUri: '/welcome/login',
}, options);
return async (req, res, next) => {
if (options.requireLogin && !req.user) {
return next(new SiteError(403, 'Must sign in to proceed'));
req.session.loginReturnTo = req.url;
return res.redirect(options.loginUri);
}
if (options.requireAdmin && (!req.user || !req.user.flags.isAdmin)) {
return next(new SiteError(403, 'Administrator privileges are required'));

@ -21,7 +21,6 @@
"chart.js": "^3.7.1",
"chartjs-adapter-moment": "^1.0.0",
"compression": "^1.7.4",
"connect-ensure-login": "^0.1.1",
"connect-redis": "^6.1.1",
"cookie-parser": "^1.4.6",
"cron": "^1.8.2",

@ -2557,11 +2557,6 @@ configstore@^5.0.1:
write-file-atomic "^3.0.0"
xdg-basedir "^4.0.0"
connect-ensure-login@^0.1.1:
version "0.1.1"
resolved "https://registry.yarnpkg.com/connect-ensure-login/-/connect-ensure-login-0.1.1.tgz#174dcc51243b9eac23f8d98215aeb6694e2e8a12"
integrity sha512-u0LGY/YXgkqdD4uVz8Gkri0adby5SBPYIFQvIa4FjBIaZUN0yuZPVHsjAA2bUiprGyjh8NlqxPUcIzzfTiXhQQ==
connect-history-api-fallback@^1:
version "1.6.0"
resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz#8b32089359308d111115d81cad3fceab888f97bc"

Loading…
Cancel
Save