From b07a522c600683717805c72d8bc57344099eeb1d Mon Sep 17 00:00:00 2001 From: barisusakli Date: Sat, 20 Dec 2014 18:34:02 -0500 Subject: [PATCH] one less query in privileges.topics.get --- src/privileges/topics.js | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/src/privileges/topics.js b/src/privileges/topics.js index e3372cb19d..8bd43ad7c5 100644 --- a/src/privileges/topics.js +++ b/src/privileges/topics.js @@ -17,16 +17,18 @@ module.exports = function(privileges) { privileges.topics.get = function(tid, uid, callback) { async.waterfall([ - async.apply(topics.getTopicField, tid, 'cid'), - function(cid, next) { + async.apply(topics.getTopicFields, tid, ['cid', 'uid']), + function(topic, next) { async.parallel({ - 'topics:reply': async.apply(helpers.isUserAllowedTo, 'topics:reply', uid, [cid]), - read: async.apply(helpers.isUserAllowedTo, 'read', uid, [cid]), - isOwner: async.apply(topics.isOwner, tid, uid), + 'topics:reply': async.apply(helpers.isUserAllowedTo, 'topics:reply', uid, [topic.cid]), + read: async.apply(helpers.isUserAllowedTo, 'read', uid, [topic.cid]), + isOwner: function(next) { + next(null, parseInt(uid, 10) === parseInt(topic.uid, 10)); + }, manage_topic: async.apply(helpers.hasEnoughReputationFor, 'privileges:manage_topic', uid), isAdministrator: async.apply(user.isAdministrator, uid), - isModerator: async.apply(user.isModerator, uid, cid), - disabled: async.apply(categories.getCategoryField, cid, 'disabled') + isModerator: async.apply(user.isModerator, uid, topic.cid), + disabled: async.apply(categories.getCategoryField, topic.cid, 'disabled') }, next); } ], function(err, results) {