mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-11-02 03:55:55 +01:00
add router.all
This commit is contained in:
@@ -34,15 +34,6 @@ require('./maintenance')(middleware);
|
||||
require('./user')(middleware);
|
||||
require('./headers')(middleware);
|
||||
|
||||
middleware.stripLeadingSlashes = function (req, res, next) {
|
||||
var target = req.originalUrl.replace(nconf.get('relative_path'), '');
|
||||
if (target.startsWith('//')) {
|
||||
res.redirect(nconf.get('relative_path') + target.replace(/^\/+/, '/'));
|
||||
} else {
|
||||
next();
|
||||
}
|
||||
};
|
||||
|
||||
middleware.pageView = function (req, res, next) {
|
||||
analytics.pageView({
|
||||
ip: req.ip,
|
||||
|
||||
@@ -117,6 +117,10 @@ Plugins.reload = function (callback) {
|
||||
|
||||
Plugins.reloadRoutes = function (callback) {
|
||||
var router = express.Router();
|
||||
var ensureLoggedIn = require('connect-ensure-login');
|
||||
|
||||
router.all('(/api/admin|/api/admin/*?)', middleware.isAdmin);
|
||||
router.all('(/admin|/admin/*?)', ensureLoggedIn.ensureLoggedIn(nconf.get('relative_path') + '/login?local=1'), middleware.applyCSRF, middleware.isAdmin);
|
||||
|
||||
router.hotswapId = 'plugins';
|
||||
router.render = function () {
|
||||
|
||||
@@ -113,12 +113,14 @@ module.exports = function (app, middleware, hotswapIds, callback) {
|
||||
pluginRouter.hotswapId = 'plugins';
|
||||
authRouter.hotswapId = 'auth';
|
||||
|
||||
app.use(middleware.stripLeadingSlashes);
|
||||
|
||||
app.all(relativePath + '(/api|/api/*?)', middleware.prepareAPI);
|
||||
|
||||
app.all(relativePath + '(/api/admin|/api/admin/*?)', middleware.isAdmin);
|
||||
app.all(relativePath + '(/admin|/admin/*?)', ensureLoggedIn.ensureLoggedIn(nconf.get('relative_path') + '/login?local=1'), middleware.applyCSRF, middleware.isAdmin);
|
||||
|
||||
router.all('(/api/admin|/api/admin/*?)', middleware.isAdmin);
|
||||
router.all('(/admin|/admin/*?)', ensureLoggedIn.ensureLoggedIn(nconf.get('relative_path') + '/login?local=1'), middleware.applyCSRF, middleware.isAdmin);
|
||||
|
||||
adminRoutes(router, middleware, controllers);
|
||||
metaRoutes(router, middleware, controllers);
|
||||
apiRoutes(router, middleware, controllers);
|
||||
|
||||
@@ -1771,6 +1771,26 @@ describe('Controllers', function () {
|
||||
});
|
||||
});
|
||||
|
||||
describe('admin middlewares', function () {
|
||||
it('should redirect to login', function (done) {
|
||||
request(nconf.get('url') + '//api/admin/advanced/database', { json: true }, function (err, res, body) {
|
||||
assert.ifError(err);
|
||||
assert.equal(res.statusCode, 200);
|
||||
assert(body.indexOf('Login to your account') !== -1);
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
it('should redirect to login', function (done) {
|
||||
request(nconf.get('url') + '//admin/advanced/database', { json: true }, function (err, res, body) {
|
||||
assert.ifError(err);
|
||||
assert.equal(res.statusCode, 200);
|
||||
assert(body.indexOf('Login to your account') !== -1);
|
||||
done();
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
after(function (done) {
|
||||
var analytics = require('../src/analytics');
|
||||
analytics.writeData(done);
|
||||
|
||||
Reference in New Issue
Block a user