diff --git a/src/privileges/categories.js b/src/privileges/categories.js index 11b4767b30..b0f89a9fad 100644 --- a/src/privileges/categories.js +++ b/src/privileges/categories.js @@ -68,6 +68,14 @@ module.exports = function(privileges) { }; privileges.categories.filter = function(privilege, cids, uid, callback) { + if (!cids.length) { + return callback(null, []); + } + + cids = cids.filter(function(cid, index, array) { + return array.indexOf(cid) === index; + }); + async.parallel({ allowedTo: function(next) { helpers.allowedTo(privilege, uid, cids, next); diff --git a/src/privileges/posts.js b/src/privileges/posts.js index 71df14ae36..f68a235866 100644 --- a/src/privileges/posts.js +++ b/src/privileges/posts.js @@ -77,6 +77,9 @@ module.exports = function(privileges) { }; privileges.posts.filter = function(privilege, pids, uid, callback) { + if (!pids.length) { + return callback(null, []); + } posts.getCidsByPids(pids, function(err, cids) { if (err) { return callback(err); diff --git a/src/privileges/topics.js b/src/privileges/topics.js index 900aa0782d..6a2d321d97 100644 --- a/src/privileges/topics.js +++ b/src/privileges/topics.js @@ -76,6 +76,10 @@ module.exports = function(privileges) { }; privileges.topics.filter = function(privilege, tids, uid, callback) { + if (!tids.length) { + return callback(null, []); + } + var keys = tids.map(function(tid) { return 'topic:' + tid; });