added filter:users.isModerator

v1.18.x
psychobunny 10 years ago
parent a3f0f58ebe
commit 673145d413

@ -338,9 +338,15 @@ var async = require('async'),
}; };
User.isModerator = function(uid, cid, callback) { 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 (Array.isArray(cid)) {
if (!parseInt(uid, 10)) { 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) { var uniqueCids = cid.filter(function(cid, index, array) {
return array.indexOf(cid) === index; return array.indexOf(cid) === index;
@ -360,15 +366,15 @@ var async = require('async'),
map[cid] = isMembers[index]; map[cid] = isMembers[index];
}); });
callback(null, cid.map(function(cid) { filterIsModerator(null, cid.map(function(cid) {
return map[cid]; return map[cid];
})); }));
}); });
} else { } else {
if (Array.isArray(uid)) { if (Array.isArray(uid)) {
groups.isMembers(uid, 'cid:' + cid + ':privileges:mods', callback); groups.isMembers(uid, 'cid:' + cid + ':privileges:mods', filterIsModerator);
} else { } else {
groups.isMember(uid, 'cid:' + cid + ':privileges:mods', callback); groups.isMember(uid, 'cid:' + cid + ':privileges:mods', filterIsModerator);
} }
} }
}; };

Loading…
Cancel
Save