From 673145d41367150664aef0d8eae6d2cfd031d28d Mon Sep 17 00:00:00 2001 From: psychobunny Date: Tue, 2 Dec 2014 14:19:06 -0500 Subject: [PATCH] added filter:users.isModerator --- src/user.js | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/user.js b/src/user.js index b89f91ec6e..693d6b0f1d 100644 --- a/src/user.js +++ b/src/user.js @@ -338,9 +338,15 @@ var async = require('async'), }; User.isModerator = function(uid, cid, callback) { + function filterIsModerator(err, isModerator) { + plugins.fireHook('filter:users.isModerator', {uid: uid, cid:cid, isModerator: isModerator}, function(err, data) { + callback(err, data.isModerator); + }); + } + if (Array.isArray(cid)) { if (!parseInt(uid, 10)) { - return callback(null, cid.map(function() {return false;})); + return filterIsModerator(null, cid.map(function() {return false;})); } var uniqueCids = cid.filter(function(cid, index, array) { return array.indexOf(cid) === index; @@ -360,15 +366,15 @@ var async = require('async'), map[cid] = isMembers[index]; }); - callback(null, cid.map(function(cid) { + filterIsModerator(null, cid.map(function(cid) { return map[cid]; })); }); } else { if (Array.isArray(uid)) { - groups.isMembers(uid, 'cid:' + cid + ':privileges:mods', callback); + groups.isMembers(uid, 'cid:' + cid + ':privileges:mods', filterIsModerator); } else { - groups.isMember(uid, 'cid:' + cid + ':privileges:mods', callback); + groups.isMember(uid, 'cid:' + cid + ':privileges:mods', filterIsModerator); } } };