refactored plugin and auth init a bit, and fixed issue where successive reloads caused old login strategies to be inadvertently preserved

This commit is contained in:
Julian Lam
2014-09-21 14:29:27 -04:00
parent 5f2a66295c
commit 7597c654a0
6 changed files with 26 additions and 34 deletions

View File

@@ -31,11 +31,15 @@ var fs = require('fs'),
Plugins.initialized = false;
Plugins.init = function() {
Plugins.init = function(nbbApp, nbbMiddleware) {
if (Plugins.initialized) {
return;
}
app = nbbApp;
middleware = nbbMiddleware;
hotswap.prepare(nbbApp);
if (global.env === 'development') {
winston.info('[plugins] Initializing plugins system');
}
@@ -62,12 +66,6 @@ var fs = require('fs'),
});
};
Plugins.prepareApp = function(nbbApp, nbbMiddleware) {
app = nbbApp;
middleware = nbbMiddleware;
hotswap.prepare(nbbApp);
};
Plugins.ready = function(callback) {
if (!Plugins.initialized) {
emitter.once('plugins:loaded', callback);
@@ -124,24 +122,20 @@ var fs = require('fs'),
};
Plugins.reloadRoutes = function(callback) {
if (!app || !middleware || !controllers) {
return;
} else {
var router = express.Router();
router.hotswapId = 'plugins';
router.render = function() {
app.render.apply(app, arguments);
};
var router = express.Router();
router.hotswapId = 'plugins';
router.render = function() {
app.render.apply(app, arguments);
};
// Deprecated as of v0.5.0, remove this hook call for NodeBB v0.6.0-1
Plugins.fireHook('action:app.load', router, middleware, controllers);
// Deprecated as of v0.5.0, remove this hook call for NodeBB v0.6.0-1
Plugins.fireHook('action:app.load', router, middleware, controllers);
Plugins.fireHook('static:app.load', router, middleware, controllers, function() {
hotswap.replace('plugins', router);
winston.info('[plugins] All plugins reloaded and rerouted');
callback();
});
}
Plugins.fireHook('static:app.load', router, middleware, controllers, function() {
hotswap.replace('plugins', router);
winston.info('[plugins] All plugins reloaded and rerouted');
callback();
});
};
Plugins.loadPlugin = function(pluginPath, callback) {