fix: unable to register async method as response hook listener

Also fixes #8723, /api/config now runs middleware.authenticateOrGuest
v1.18.x
Julian Lam 4 years ago
parent b01bc2ae0f
commit dde5b6b814

@ -189,21 +189,20 @@ module.exports = function (Plugins) {
if (!Array.isArray(hookList) || !hookList.length) { if (!Array.isArray(hookList) || !hookList.length) {
return; return;
} }
await async.eachSeries(hookList, function (hookObj, next) { await async.eachSeries(hookList, async (hookObj) => {
if (typeof hookObj.method !== 'function') { if (typeof hookObj.method !== 'function') {
if (global.env === 'development') { if (global.env === 'development') {
winston.warn('[plugins] Expected method for hook \'' + hook + '\' in plugin \'' + hookObj.id + '\' not found, skipping.'); winston.warn('[plugins] Expected method for hook \'' + hook + '\' in plugin \'' + hookObj.id + '\' not found, skipping.');
} }
return next(); return;
} }
// Skip remaining hooks if headers have been sent // Skip remaining hooks if headers have been sent
if (params.res.headersSent) { if (params.res.headersSent) {
return next(); return;
} }
hookObj.method(params); await hookObj.method(params);
next();
}); });
} }

@ -8,7 +8,7 @@ module.exports = function (app, middleware, controllers) {
var router = express.Router(); var router = express.Router();
app.use('/api', router); app.use('/api', router);
router.get('/config', middleware.applyCSRF, controllers.api.getConfig); router.get('/config', middleware.applyCSRF, middleware.authenticateOrGuest, controllers.api.getConfig);
router.get('/self', controllers.user.getCurrentUser); router.get('/self', controllers.user.getCurrentUser);
router.get('/user/uid/:uid', middleware.canViewUsers, controllers.user.getUserByUID); router.get('/user/uid/:uid', middleware.canViewUsers, controllers.user.getUserByUID);

Loading…
Cancel
Save