one less query in privileges.topics.get

v1.18.x
barisusakli 10 years ago
parent 984b17349a
commit b07a522c60

@ -17,16 +17,18 @@ module.exports = function(privileges) {
privileges.topics.get = function(tid, uid, callback) { privileges.topics.get = function(tid, uid, callback) {
async.waterfall([ async.waterfall([
async.apply(topics.getTopicField, tid, 'cid'), async.apply(topics.getTopicFields, tid, ['cid', 'uid']),
function(cid, next) { function(topic, next) {
async.parallel({ async.parallel({
'topics:reply': async.apply(helpers.isUserAllowedTo, 'topics:reply', uid, [cid]), 'topics:reply': async.apply(helpers.isUserAllowedTo, 'topics:reply', uid, [topic.cid]),
read: async.apply(helpers.isUserAllowedTo, 'read', uid, [cid]), read: async.apply(helpers.isUserAllowedTo, 'read', uid, [topic.cid]),
isOwner: async.apply(topics.isOwner, tid, uid), isOwner: function(next) {
next(null, parseInt(uid, 10) === parseInt(topic.uid, 10));
},
manage_topic: async.apply(helpers.hasEnoughReputationFor, 'privileges:manage_topic', uid), manage_topic: async.apply(helpers.hasEnoughReputationFor, 'privileges:manage_topic', uid),
isAdministrator: async.apply(user.isAdministrator, uid), isAdministrator: async.apply(user.isAdministrator, uid),
isModerator: async.apply(user.isModerator, uid, cid), isModerator: async.apply(user.isModerator, uid, topic.cid),
disabled: async.apply(categories.getCategoryField, cid, 'disabled') disabled: async.apply(categories.getCategoryField, topic.cid, 'disabled')
}, next); }, next);
} }
], function(err, results) { ], function(err, results) {

Loading…
Cancel
Save