Files
NodeBB/src/middleware/header.js

40 lines
915 B
JavaScript
Raw Normal View History

2015-10-11 23:05:33 -04:00
'use strict';
2021-01-16 12:54:11 -05:00
const util = require('util');
const user = require('../user');
const plugins = require('../plugins');
const helpers = require('./helpers');
const controllers = {
2015-10-11 23:05:33 -04:00
api: require('../controllers/api'),
};
const middleware = module.exports;
2021-02-04 00:01:39 -07:00
middleware.buildHeader = helpers.try(async (req, res, next) => {
res.locals.renderHeader = true;
res.locals.isAPI = false;
if (req.method === 'GET') {
await require('./index').applyCSRFasync(req, res);
}
await plugins.hooks.fire('filter:middleware.buildHeader', { req: req, locals: res.locals });
2020-12-14 09:20:41 +03:00
const [config, canLoginIfBanned] = await Promise.all([
controllers.api.loadConfig(req),
2020-12-14 09:20:41 +03:00
user.bans.canLoginIfBanned(req.uid),
]);
2020-12-14 09:20:41 +03:00
if (!canLoginIfBanned && req.loggedIn) {
req.logout(() => {
res.redirect('/');
});
return;
}
res.locals.config = config;
next();
});
middleware.buildHeaderAsync = util.promisify(middleware.buildHeader);