v1.18.x
Julian Lam 10 years ago
parent 6e62c48f41
commit 9215930cfc

@ -473,6 +473,10 @@ middleware.addExpiresHeaders = function(req, res, next) {
}; };
middleware.maintenanceMode = function(req, res, next) { middleware.maintenanceMode = function(req, res, next) {
if (meta.config.maintenanceMode !== '1') {
return next();
}
var allowedRoutes = [ var allowedRoutes = [
'/login', '/login',
'/stylesheet.css', '/stylesheet.css',
@ -480,12 +484,22 @@ middleware.maintenanceMode = function(req, res, next) {
'/vendor/fontawesome/fonts/fontawesome-webfont.woff' '/vendor/fontawesome/fonts/fontawesome-webfont.woff'
], ],
render = function() { render = function() {
middleware.buildHeader(req, res, function() { res.status(503);
res.status(503).render('maintenance', {
site_title: meta.config.title || 'NodeBB', if (!isApiRoute.test(req.url)) {
message: meta.config.maintenanceModeMessage middleware.buildHeader(req, res, function() {
res.render('maintenance', {
site_title: meta.config.title || 'NodeBB',
message: meta.config.maintenanceModeMessage
});
}); });
}); } else {
translator.translate('[[pages:maintenance.text, ' + meta.config.title + ']]', meta.config.defaultLang || 'en_GB', function(translated) {
res.json({
error: translated
});
});
}
}, },
isAllowed = function(url) { isAllowed = function(url) {
for(var x=0,numAllowed=allowedRoutes.length,route;x<numAllowed;x++) { for(var x=0,numAllowed=allowedRoutes.length,route;x<numAllowed;x++) {
@ -494,9 +508,10 @@ middleware.maintenanceMode = function(req, res, next) {
return true; return true;
} }
} }
}; },
isApiRoute = /^\/api/;
if (meta.config.maintenanceMode === '1' && !isAllowed(req.url)) { if (!isAllowed(req.url)) {
if (!req.user) { if (!req.user) {
return render(); return render();
} else { } else {

Loading…
Cancel
Save