mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-11-06 05:55:48 +01:00
* fix: #7038, autoLocale logic not playing nicely with no-refresh auths - on login, req.query.lang is deleted (since it seems to be left over) - on logout, the middleware.autoLocale is executed, which resets req.query.lang - middleware.autoLocale is new, just refactored existing logic in webserver.js into new middleware method. * style: tests, use lodash * fix: timeago strings not switching languages on login or out
This commit is contained in:
@@ -25,7 +25,6 @@ var db = require('./database');
|
||||
var file = require('./file');
|
||||
var emailer = require('./emailer');
|
||||
var meta = require('./meta');
|
||||
var languages = require('./languages');
|
||||
var logger = require('./logger');
|
||||
var plugins = require('./plugins');
|
||||
var flags = require('./flags');
|
||||
@@ -194,12 +193,13 @@ function setupExpressApp(app, callback) {
|
||||
app.use(middleware.addHeaders);
|
||||
app.use(middleware.processRender);
|
||||
auth.initialize(app, middleware);
|
||||
app.use(middleware.autoLocale); // must be added after auth middlewares are added
|
||||
|
||||
var toobusy = require('toobusy-js');
|
||||
toobusy.maxLag(meta.config.eventLoopLagThreshold);
|
||||
toobusy.interval(meta.config.eventLoopInterval);
|
||||
|
||||
setupAutoLocale(app, callback);
|
||||
callback();
|
||||
}
|
||||
|
||||
function setupFavicon(app) {
|
||||
@@ -233,35 +233,6 @@ function setupCookie() {
|
||||
return cookie;
|
||||
}
|
||||
|
||||
function setupAutoLocale(app, callback) {
|
||||
languages.listCodes(function (err, codes) {
|
||||
if (err) {
|
||||
return callback(err);
|
||||
}
|
||||
|
||||
var defaultLang = meta.config.defaultLang || 'en-GB';
|
||||
|
||||
var langs = [defaultLang].concat(codes).filter(function (el, i, arr) {
|
||||
return arr.indexOf(el) === i;
|
||||
});
|
||||
|
||||
app.use(function (req, res, next) {
|
||||
if (parseInt(req.uid, 10) > 0 || !meta.config.autoDetectLang) {
|
||||
return next();
|
||||
}
|
||||
|
||||
var lang = req.acceptsLanguages(langs);
|
||||
if (!lang) {
|
||||
return next();
|
||||
}
|
||||
req.query.lang = lang;
|
||||
next();
|
||||
});
|
||||
|
||||
callback();
|
||||
});
|
||||
}
|
||||
|
||||
function listen(callback) {
|
||||
callback = callback || function () { };
|
||||
var port = nconf.get('port');
|
||||
|
||||
Reference in New Issue
Block a user