mirror of
https://github.com/NodeBB/NodeBB.git
synced 2026-04-09 14:09:32 +02:00
refactor: use renderHeaderType instead of two variables
add middleware.admin.buildHeaderAsync so it can be called manually with await middleware.admin.buildHeaderAsync(req, res)
This commit is contained in:
@@ -17,14 +17,23 @@ const controllers = {
|
||||
const middleware = module.exports;
|
||||
|
||||
middleware.buildHeader = helpers.try(async (req, res, next) => {
|
||||
res.locals.renderAdminHeader = true;
|
||||
await doBuildHeader(req, res);
|
||||
next();
|
||||
});
|
||||
|
||||
middleware.buildHeaderAsync = async (req, res) => {
|
||||
await doBuildHeader(req, res);
|
||||
};
|
||||
|
||||
async function doBuildHeader(req, res) {
|
||||
res.locals.renderHeaderType = 'admin';
|
||||
res.locals.isAPI = false;
|
||||
if (req.method === 'GET') {
|
||||
await require('./index').applyCSRFasync(req, res);
|
||||
}
|
||||
|
||||
await plugins.hooks.fire('filter:middleware.buildAdminHeader', { req: req, locals: res.locals });
|
||||
res.locals.config = await controllers.admin.loadConfig(req);
|
||||
next();
|
||||
});
|
||||
}
|
||||
|
||||
middleware.checkPrivileges = helpers.try(async (req, res, next) => {
|
||||
// Kick out guests, obviously
|
||||
|
||||
@@ -19,7 +19,7 @@ middleware.buildHeaderAsync = async (req, res) => {
|
||||
};
|
||||
|
||||
async function doBuildHeader(req, res) {
|
||||
res.locals.renderHeader = true;
|
||||
res.locals.renderHeaderType = 'client';
|
||||
res.locals.isAPI = false;
|
||||
if (req.method === 'GET') {
|
||||
await require('./index').applyCSRFasync(req, res);
|
||||
|
||||
@@ -139,9 +139,9 @@ module.exports = function (middleware) {
|
||||
}
|
||||
|
||||
async function loadHeaderFooterData(req, res, options) {
|
||||
if (res.locals.renderHeader) {
|
||||
if (res.locals.renderHeaderType === 'client') {
|
||||
return await loadClientHeaderFooterData(req, res, options);
|
||||
} else if (res.locals.renderAdminHeader) {
|
||||
} else if (res.locals.renderHeaderType === 'admin') {
|
||||
return await loadAdminHeaderFooterData(req, res, options);
|
||||
}
|
||||
return null;
|
||||
@@ -382,13 +382,13 @@ module.exports = function (middleware) {
|
||||
|
||||
async function renderHeaderFooter(method, req, res, options, headerFooterData) {
|
||||
let str = '';
|
||||
if (res.locals.renderHeader) {
|
||||
if (res.locals.renderHeaderType === 'client') {
|
||||
if (method === 'renderHeader') {
|
||||
str = await renderHeader(req, res, options, headerFooterData);
|
||||
} else if (method === 'renderFooter') {
|
||||
str = await renderFooter(req, res, options, headerFooterData);
|
||||
}
|
||||
} else if (res.locals.renderAdminHeader) {
|
||||
} else if (res.locals.renderHeaderType === 'admin') {
|
||||
if (method === 'renderHeader') {
|
||||
str = await renderAdminHeader(req, res, options, headerFooterData);
|
||||
} else if (method === 'renderFooter') {
|
||||
@@ -400,7 +400,7 @@ module.exports = function (middleware) {
|
||||
|
||||
function getLang(req, res) {
|
||||
let language = (res.locals.config && res.locals.config.userLang) || 'en-GB';
|
||||
if (res.locals.renderAdminHeader) {
|
||||
if (res.locals.renderHeaderType === 'admin') {
|
||||
language = (res.locals.config && res.locals.config.acpLang) || 'en-GB';
|
||||
}
|
||||
return req.query.lang ? validator.escape(String(req.query.lang)) : language;
|
||||
|
||||
Reference in New Issue
Block a user