v1.18.x
barisusakli 11 years ago
parent 7e82d3d9a5
commit cfc67d4e90

@ -70,11 +70,13 @@ categoriesController.get = function(req, res, next) {
async.waterfall([
function(next) {
categories.getCategoryField(cid, 'disabled', function(err, disabled) {
next(disabled === '1' ? new Error('category-disabled') : undefined);
});
categories.getCategoryField(cid, 'disabled', next);
},
function(next) {
function(disabled, next) {
if (parseInt(disabled, 10) === 1) {
return next(new Error('category-disabled'));
}
privileges.categories.get(cid, uid, function(err, categoryPrivileges) {
if (err) {
return next(err);
@ -163,11 +165,7 @@ categoriesController.get = function(req, res, next) {
}
], function (err, data) {
if (err) {
if (err.message === '[[error:no-privileges]]') {
return res.locals.isAPI ? res.json(403, err.message) : res.redirect('403');
} else {
return res.locals.isAPI ? res.json(404, 'not-found') : res.redirect('404');
}
return res.locals.isAPI ? res.json(404, 'not-found') : res.redirect(nconf.get('relative_path') + '/404');
}
if (data.link) {

@ -30,7 +30,7 @@ groupsController.details = function(req, res) {
if (!err) {
res.render('groups/details', results);
} else {
res.redirect('404');
res.redirect(nconf.get('relative_path') + '/404')
}
});
};

@ -188,7 +188,7 @@ Controllers.confirmEmail = function(req, res, next) {
Controllers.sitemap = function(req, res, next) {
if (meta.config['feeds:disableSitemap'] === '1') {
return res.redirect('404');
return res.redirect(nconf.get('relative_path') + '/404')
}
var sitemap = require('../sitemap.js');

@ -24,7 +24,7 @@ topicsController.get = function(req, res, next) {
privileges.topics.get(tid, uid, next);
},
function (privileges, next) {
if (!privileges.read) {
if (!privileges.read || privileges.disabled) {
return next(new Error('[[error:no-privileges]]'));
}
@ -164,11 +164,7 @@ topicsController.get = function(req, res, next) {
}
], function (err, data) {
if (err) {
if (err.message === '[[error:no-privileges]]') {
return res.locals.isAPI ? res.json(403, err.message) : res.redirect('403');
} else {
return res.locals.isAPI ? res.json(404, 'not-found') : res.redirect('404');
}
return res.locals.isAPI ? res.json(404, 'not-found') : res.redirect(nconf.get('relative_path') + '/404');
}
data.privileges = userPrivileges;

@ -161,11 +161,7 @@ middleware.checkAccountPermissions = function(req, res, next) {
}
if (!uid) {
if (res.locals.isAPI) {
return res.json(404, 'not-found');
} else {
return res.redirect('404');
}
return res.locals.isAPI ? res.json(404, 'not-found') : res.redirect(nconf.get('relative_path') + '/404');
}
if (parseInt(uid, 10) === callerUID) {
@ -181,11 +177,7 @@ middleware.checkAccountPermissions = function(req, res, next) {
return next();
}
if (res.locals.isAPI) {
return res.json(403, 'not-allowed');
} else {
return res.redirect('403');
}
res.locals.isAPI ? res.json(403, 'not-allowed') : res.redirect(nconf.get('relative_path') + '/403');
});
});
};

@ -39,13 +39,17 @@ module.exports = function(privileges) {
},
isModerator: function(next) {
user.isModerator(uid, cid, next);
},
disabled: function(next) {
categories.getCategoryField(cid, 'disabled', next);
}
}, function(err, results) {
if(err) {
return callback(err);
}
var disabled = parseInt(results.disabled, 10) === 1;
var isAdminOrMod = results.isAdministrator || results.isModerator;
var editable = isAdminOrMod || results.manage_topic;
var editable = isAdminOrMod || results.manage_topic;
var deletable = isAdminOrMod || results.isOwner;
callback(null, {
@ -54,7 +58,8 @@ module.exports = function(privileges) {
view_thread_tools: editable || deletable,
editable: editable,
deletable: deletable,
view_deleted: isAdminOrMod || results.manage_topic || results.isOwner
view_deleted: isAdminOrMod || results.manage_topic || results.isOwner,
disabled: disabled
});
});
});

@ -31,7 +31,7 @@ function hasPrivileges(method, id, req, res, next) {
}
if (!canRead) {
return res.redirect('403');
return res.redirect(nconf.get('relative_path') + '/403')
}
return next();
@ -53,7 +53,7 @@ function generateForTopic(req, res, next) {
}
if (topicData.deleted && !userPrivileges.view_deleted) {
return res.redirect('404');
return res.redirect(nconf.get('relative_path') + '/404')
}
var description = topicData.posts.length ? topicData.posts[0].content : '';
@ -133,7 +133,7 @@ function generateForPopular(req, res, next) {
function disabledRSS(req, res, next) {
if (meta.config['feeds:disableRSS'] === '1') {
return res.redirect('404');
return res.redirect(nconf.get('relative_path') + '/404')
}
next();

@ -216,7 +216,7 @@ function handleErrors(err, req, res, next) {
req.flash('errorMessage', err.message);
res.redirect('500');
res.redirect(nconf.get('relative_path') + '/500')
}
function catch404(req, res, next) {

Loading…
Cancel
Save