mirror of
https://github.com/NodeBB/NodeBB.git
synced 2026-05-07 07:47:58 +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;
|
const middleware = module.exports;
|
||||||
|
|
||||||
middleware.buildHeader = helpers.try(async (req, res, next) => {
|
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') {
|
if (req.method === 'GET') {
|
||||||
await require('./index').applyCSRFasync(req, res);
|
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);
|
res.locals.config = await controllers.admin.loadConfig(req);
|
||||||
next();
|
}
|
||||||
});
|
|
||||||
|
|
||||||
middleware.checkPrivileges = helpers.try(async (req, res, next) => {
|
middleware.checkPrivileges = helpers.try(async (req, res, next) => {
|
||||||
// Kick out guests, obviously
|
// Kick out guests, obviously
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ middleware.buildHeaderAsync = async (req, res) => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
async function doBuildHeader(req, res) {
|
async function doBuildHeader(req, res) {
|
||||||
res.locals.renderHeader = true;
|
res.locals.renderHeaderType = 'client';
|
||||||
res.locals.isAPI = false;
|
res.locals.isAPI = false;
|
||||||
if (req.method === 'GET') {
|
if (req.method === 'GET') {
|
||||||
await require('./index').applyCSRFasync(req, res);
|
await require('./index').applyCSRFasync(req, res);
|
||||||
|
|||||||
@@ -139,9 +139,9 @@ module.exports = function (middleware) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async function loadHeaderFooterData(req, res, options) {
|
async function loadHeaderFooterData(req, res, options) {
|
||||||
if (res.locals.renderHeader) {
|
if (res.locals.renderHeaderType === 'client') {
|
||||||
return await loadClientHeaderFooterData(req, res, options);
|
return await loadClientHeaderFooterData(req, res, options);
|
||||||
} else if (res.locals.renderAdminHeader) {
|
} else if (res.locals.renderHeaderType === 'admin') {
|
||||||
return await loadAdminHeaderFooterData(req, res, options);
|
return await loadAdminHeaderFooterData(req, res, options);
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
@@ -382,13 +382,13 @@ module.exports = function (middleware) {
|
|||||||
|
|
||||||
async function renderHeaderFooter(method, req, res, options, headerFooterData) {
|
async function renderHeaderFooter(method, req, res, options, headerFooterData) {
|
||||||
let str = '';
|
let str = '';
|
||||||
if (res.locals.renderHeader) {
|
if (res.locals.renderHeaderType === 'client') {
|
||||||
if (method === 'renderHeader') {
|
if (method === 'renderHeader') {
|
||||||
str = await renderHeader(req, res, options, headerFooterData);
|
str = await renderHeader(req, res, options, headerFooterData);
|
||||||
} else if (method === 'renderFooter') {
|
} else if (method === 'renderFooter') {
|
||||||
str = await renderFooter(req, res, options, headerFooterData);
|
str = await renderFooter(req, res, options, headerFooterData);
|
||||||
}
|
}
|
||||||
} else if (res.locals.renderAdminHeader) {
|
} else if (res.locals.renderHeaderType === 'admin') {
|
||||||
if (method === 'renderHeader') {
|
if (method === 'renderHeader') {
|
||||||
str = await renderAdminHeader(req, res, options, headerFooterData);
|
str = await renderAdminHeader(req, res, options, headerFooterData);
|
||||||
} else if (method === 'renderFooter') {
|
} else if (method === 'renderFooter') {
|
||||||
@@ -400,7 +400,7 @@ module.exports = function (middleware) {
|
|||||||
|
|
||||||
function getLang(req, res) {
|
function getLang(req, res) {
|
||||||
let language = (res.locals.config && res.locals.config.userLang) || 'en-GB';
|
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';
|
language = (res.locals.config && res.locals.config.acpLang) || 'en-GB';
|
||||||
}
|
}
|
||||||
return req.query.lang ? validator.escape(String(req.query.lang)) : language;
|
return req.query.lang ? validator.escape(String(req.query.lang)) : language;
|
||||||
|
|||||||
Reference in New Issue
Block a user