mirror of
https://github.com/NodeBB/NodeBB.git
synced 2026-05-07 13:26:02 +02:00
Merge branch 'develop'
This commit is contained in:
@@ -19,9 +19,8 @@ module.exports = function (middleware) {
|
|||||||
if (req.loggedIn) {
|
if (req.loggedIn) {
|
||||||
return next();
|
return next();
|
||||||
}
|
}
|
||||||
|
if (plugins.hasListeners('response:middleware.authenticate')) {
|
||||||
if (plugins.hasListeners('action:middleware.authenticate')) {
|
return plugins.fireHook('response:middleware.authenticate', {
|
||||||
return plugins.fireHook('action:middleware.authenticate', {
|
|
||||||
req: req,
|
req: req,
|
||||||
res: res,
|
res: res,
|
||||||
next: function (err) {
|
next: function (err) {
|
||||||
|
|||||||
@@ -110,6 +110,9 @@ module.exports = function (Plugins) {
|
|||||||
case 'static':
|
case 'static':
|
||||||
fireStaticHook(hook, hookList, params, done);
|
fireStaticHook(hook, hookList, params, done);
|
||||||
break;
|
break;
|
||||||
|
case 'response':
|
||||||
|
fireResponseHook(hook, hookList, params, done);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
winston.warn('[plugins] Unknown hookType: ' + hookType + ', hook : ' + hook);
|
winston.warn('[plugins] Unknown hookType: ' + hookType + ', hook : ' + hook);
|
||||||
callback();
|
callback();
|
||||||
@@ -184,6 +187,28 @@ module.exports = function (Plugins) {
|
|||||||
}, callback);
|
}, callback);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function fireResponseHook(hook, hookList, params, callback) {
|
||||||
|
if (!Array.isArray(hookList) || !hookList.length) {
|
||||||
|
return callback();
|
||||||
|
}
|
||||||
|
async.eachSeries(hookList, function (hookObj, next) {
|
||||||
|
if (typeof hookObj.method !== 'function') {
|
||||||
|
if (global.env === 'development') {
|
||||||
|
winston.warn('[plugins] Expected method for hook \'' + hook + '\' in plugin \'' + hookObj.id + '\' not found, skipping.');
|
||||||
|
}
|
||||||
|
return next();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Skip remaining hooks if headers have been sent
|
||||||
|
if (params.res.headersSent) {
|
||||||
|
return next();
|
||||||
|
}
|
||||||
|
|
||||||
|
hookObj.method(params);
|
||||||
|
next();
|
||||||
|
}, callback);
|
||||||
|
}
|
||||||
|
|
||||||
Plugins.hasListeners = function (hook) {
|
Plugins.hasListeners = function (hook) {
|
||||||
return !!(Plugins.loadedHooks[hook] && Plugins.loadedHooks[hook].length > 0);
|
return !!(Plugins.loadedHooks[hook] && Plugins.loadedHooks[hook].length > 0);
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user