'use strict'; var async = require('async'), posts = require('../posts'), topics = require('../topics'), user = require('../user'), helpers = require('./helpers'), groups = require('../groups'), categories = require('../categories'); module.exports = function(privileges) { privileges.posts = {}; privileges.posts.get = function(pids, uid, callback) { async.parallel({ manage_content: function(next) { helpers.hasEnoughReputationFor('privileges:manage_content', uid, next); }, manage_topic: function(next) { helpers.hasEnoughReputationFor('privileges:manage_topic', uid, next); }, isAdministrator: function(next) { user.isAdministrator(uid, next); }, }, function(err, userResults) { if(err) { return callback(err); } var userPriv = userResults.isAdministrator || userResults.manage_topic || userResults.manage_content; async.parallel({ isOwner: function(next) { posts.isOwner(pids, uid, next); }, isModerator: function(next) { posts.getCidsByPids(pids, function(err, cids) { if (err) { return next(err); } user.isModerator(uid, cids, next); }); } }, function(err, postResults) { if (err) { return callback(err); } var privileges = []; for (var i=0; i