v1.18.x
barisusakli 10 years ago
parent a2497b050e
commit 6dfb229c66

@ -81,7 +81,7 @@ Controllers.login = function(req, res, next) {
data.alternate_logins = loginStrategies.length > 0; data.alternate_logins = loginStrategies.length > 0;
data.authentication = loginStrategies; data.authentication = loginStrategies;
data.showResetLink = emailersPresent; data.showResetLink = emailersPresent;
data.allowLocalLogin = parseInt(meta.config.allowLocalLogin, 10) === 1; data.allowLocalLogin = parseInt(meta.config.allowLocalLogin, 10) === 1 || parseInt(req.query.local, 10) === 1;
data.allowRegistration = parseInt(meta.config.allowRegistration, 10) === 1; data.allowRegistration = parseInt(meta.config.allowRegistration, 10) === 1;
data.allowLoginWith = '[[login:' + (meta.config.allowLoginWith || 'username-email') + ']]'; data.allowLoginWith = '[[login:' + (meta.config.allowLoginWith || 'username-email') + ']]';
data.breadcrumbs = helpers.buildBreadcrumbs([{text: '[[global:login]]'}]); data.breadcrumbs = helpers.buildBreadcrumbs([{text: '[[global:login]]'}]);

@ -10,18 +10,19 @@ var app,
winston = require('winston'), winston = require('winston'),
validator = require('validator'), validator = require('validator'),
nconf = require('nconf'), nconf = require('nconf'),
ensureLoggedIn = require('connect-ensure-login'),
plugins = require('./../plugins'), plugins = require('../plugins'),
navigation = require('./../navigation'), navigation = require('../navigation'),
meta = require('./../meta'), meta = require('../meta'),
translator = require('./../../public/src/modules/translator'), translator = require('../../public/src/modules/translator'),
user = require('./../user'), user = require('../user'),
groups = require('./../groups'), groups = require('../groups'),
db = require('./../database'), db = require('../database'),
categories = require('./../categories'), categories = require('../categories'),
topics = require('./../topics'), topics = require('../topics'),
messaging = require('../messaging'), messaging = require('../messaging'),
ensureLoggedIn = require('connect-ensure-login'),
analytics = require('../analytics'), analytics = require('../analytics'),
controllers = { controllers = {

@ -101,11 +101,23 @@
user.auth.logAttempt(uid, req.ip, next); user.auth.logAttempt(uid, req.ip, next);
}, },
function(next) { function(next) {
async.parallel({
userData: function(next) {
db.getObjectFields('user:' + uid, ['password', 'banned', 'passwordExpiry'], next); db.getObjectFields('user:' + uid, ['password', 'banned', 'passwordExpiry'], next);
}, },
function(_userData, next) { isAdmin: function(next) {
userData = _userData; user.isAdministrator(uid, next);
}
}, next);
},
function(result, next) {
userData = result.userData;
userData.uid = uid; userData.uid = uid;
userData.isAdmin = result.isAdmin;
if (!result.isAdmin && parseInt(meta.config.allowLocalLogin, 10) === 0) {
return next(new Error('[[error:local-login-disabled]]'));
}
if (!userData || !userData.password) { if (!userData || !userData.password) {
return next(new Error('[[error:invalid-user-data]]')); return next(new Error('[[error:invalid-user-data]]'));
@ -136,10 +148,6 @@
}); });
function login(req, res, next) { function login(req, res, next) {
if (parseInt(meta.config.allowLocalLogin, 10) === 0) {
return res.status(404).send('');
}
// Handle returnTo data // Handle returnTo data
if (req.body.hasOwnProperty('returnTo') && !req.session.returnTo) { if (req.body.hasOwnProperty('returnTo') && !req.session.returnTo) {
req.session.returnTo = req.body.returnTo; req.session.returnTo = req.body.returnTo;
@ -147,7 +155,7 @@
if (plugins.hasListeners('action:auth.overrideLogin')) { if (plugins.hasListeners('action:auth.overrideLogin')) {
return Auth.continueLogin(req, res, next); return Auth.continueLogin(req, res, next);
}; }
var loginWith = meta.config.allowLoginWith || 'username-email'; var loginWith = meta.config.allowLoginWith || 'username-email';

@ -118,7 +118,9 @@ module.exports = function(app, middleware) {
app.all(relativePath + '/api/?*', middleware.prepareAPI); app.all(relativePath + '/api/?*', middleware.prepareAPI);
app.all(relativePath + '/api/admin/?*', middleware.isAdmin); app.all(relativePath + '/api/admin/?*', middleware.isAdmin);
app.all(relativePath + '/admin/?*', middleware.ensureLoggedIn, middleware.applyCSRF, middleware.isAdmin);
var ensureLoggedIn = require('connect-ensure-login');
app.all(relativePath + '/admin/?*', ensureLoggedIn.ensureLoggedIn(nconf.get('relative_path') + '/login?local=1'), middleware.applyCSRF, middleware.isAdmin);
adminRoutes(router, middleware, controllers); adminRoutes(router, middleware, controllers);
metaRoutes(router, middleware, controllers); metaRoutes(router, middleware, controllers);

Loading…
Cancel
Save