mirror of
https://github.com/NodeBB/NodeBB.git
synced 2026-01-05 23:30:36 +01:00
closes #2842
This commit is contained in:
@@ -81,7 +81,7 @@ Controllers.login = function(req, res, next) {
|
||||
data.alternate_logins = loginStrategies.length > 0;
|
||||
data.authentication = loginStrategies;
|
||||
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.allowLoginWith = '[[login:' + (meta.config.allowLoginWith || 'username-email') + ']]';
|
||||
data.breadcrumbs = helpers.buildBreadcrumbs([{text: '[[global:login]]'}]);
|
||||
|
||||
@@ -10,18 +10,19 @@ var app,
|
||||
winston = require('winston'),
|
||||
validator = require('validator'),
|
||||
nconf = require('nconf'),
|
||||
|
||||
plugins = require('./../plugins'),
|
||||
navigation = require('./../navigation'),
|
||||
meta = require('./../meta'),
|
||||
translator = require('./../../public/src/modules/translator'),
|
||||
user = require('./../user'),
|
||||
groups = require('./../groups'),
|
||||
db = require('./../database'),
|
||||
categories = require('./../categories'),
|
||||
topics = require('./../topics'),
|
||||
messaging = require('../messaging'),
|
||||
ensureLoggedIn = require('connect-ensure-login'),
|
||||
|
||||
plugins = require('../plugins'),
|
||||
navigation = require('../navigation'),
|
||||
meta = require('../meta'),
|
||||
translator = require('../../public/src/modules/translator'),
|
||||
user = require('../user'),
|
||||
groups = require('../groups'),
|
||||
db = require('../database'),
|
||||
categories = require('../categories'),
|
||||
topics = require('../topics'),
|
||||
messaging = require('../messaging'),
|
||||
|
||||
analytics = require('../analytics'),
|
||||
|
||||
controllers = {
|
||||
|
||||
@@ -101,11 +101,23 @@
|
||||
user.auth.logAttempt(uid, req.ip, next);
|
||||
},
|
||||
function(next) {
|
||||
db.getObjectFields('user:' + uid, ['password', 'banned', 'passwordExpiry'], next);
|
||||
async.parallel({
|
||||
userData: function(next) {
|
||||
db.getObjectFields('user:' + uid, ['password', 'banned', 'passwordExpiry'], next);
|
||||
},
|
||||
isAdmin: function(next) {
|
||||
user.isAdministrator(uid, next);
|
||||
}
|
||||
}, next);
|
||||
},
|
||||
function(_userData, next) {
|
||||
userData = _userData;
|
||||
function(result, next) {
|
||||
userData = result.userData;
|
||||
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) {
|
||||
return next(new Error('[[error:invalid-user-data]]'));
|
||||
@@ -136,10 +148,6 @@
|
||||
});
|
||||
|
||||
function login(req, res, next) {
|
||||
if (parseInt(meta.config.allowLocalLogin, 10) === 0) {
|
||||
return res.status(404).send('');
|
||||
}
|
||||
|
||||
// Handle returnTo data
|
||||
if (req.body.hasOwnProperty('returnTo') && !req.session.returnTo) {
|
||||
req.session.returnTo = req.body.returnTo;
|
||||
@@ -147,7 +155,7 @@
|
||||
|
||||
if (plugins.hasListeners('action:auth.overrideLogin')) {
|
||||
return Auth.continueLogin(req, res, next);
|
||||
};
|
||||
}
|
||||
|
||||
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/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);
|
||||
metaRoutes(router, middleware, controllers);
|
||||
|
||||
Reference in New Issue
Block a user