|
|
|
@ -10,6 +10,7 @@ var topics = require('../topics');
|
|
|
|
|
var user = require('../user');
|
|
|
|
|
var helpers = require('./helpers');
|
|
|
|
|
var plugins = require('../plugins');
|
|
|
|
|
var utils = require('../utils');
|
|
|
|
|
|
|
|
|
|
module.exports = function (privileges) {
|
|
|
|
|
privileges.posts = {};
|
|
|
|
@ -190,6 +191,22 @@ module.exports = function (privileges) {
|
|
|
|
|
], callback);
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
privileges.posts.canFlag = function (pid, uid, callback) {
|
|
|
|
|
async.waterfall([
|
|
|
|
|
function (next) {
|
|
|
|
|
async.parallel({
|
|
|
|
|
userReputation: async.apply(user.getUserField, uid, 'reputation'),
|
|
|
|
|
isAdminOrMod: async.apply(isAdminOrMod, pid, uid),
|
|
|
|
|
}, next);
|
|
|
|
|
},
|
|
|
|
|
function (results, next) {
|
|
|
|
|
var minimumReputation = utils.isNumber(meta.config['privileges:flag']) ? parseInt(meta.config['privileges:flag'], 10) : 1;
|
|
|
|
|
var canFlag = results.isAdminOrMod || parseInt(results.userReputation, 10) >= minimumReputation;
|
|
|
|
|
next(null, { flag: canFlag });
|
|
|
|
|
},
|
|
|
|
|
], callback);
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
privileges.posts.canMove = function (pid, uid, callback) {
|
|
|
|
|
async.waterfall([
|
|
|
|
|
function (next) {
|
|
|
|
|