This commit is contained in:
Julian Lam
2015-03-25 20:04:45 -04:00
parent d95f5a9ae0
commit 1a58ea6520
2 changed files with 33 additions and 9 deletions

View File

@@ -415,15 +415,25 @@ var async = require('async'),
});
var groupNames = uniqueCids.map(function(cid) {
return 'cid:' + cid + ':privileges:mods';
});
return 'cid:' + cid + ':privileges:mods'; // At some point we should *probably* change this to "moderate" as well
}),
groupListNames = uniqueCids.map(function(cid) {
return 'cid:' + cid + ':privileges:groups:moderate';
});
groups.isMemberOfGroups(uid, groupNames, function(err, isMembers) {
async.parallel({
user: async.apply(groups.isMemberOfGroups, uid, groupNames),
group: async.apply(groups.isMemberOfGroupsList, uid, groupListNames)
}, function(err, checks) {
if (err) {
return callback(err);
}
var map = {};
var isMembers = checks.user.map(function(isMember, idx) {
return isMember || checks.group[idx]
}),
map = {};
uniqueCids.forEach(function(cid, index) {
map[cid] = isMembers[index];
});
@@ -434,9 +444,23 @@ var async = require('async'),
});
} else {
if (Array.isArray(uid)) {
groups.isMembers(uid, 'cid:' + cid + ':privileges:mods', filterIsModerator);
async.parallel([
async.apply(groups.isMembers, uid, 'cid:' + cid + ':privileges:mods'),
async.apply(groups.isMembers, uid, 'cid:' + cid + ':privileges:groups:moderate')
], function(err, checks) {
var isModerator = checks[0].map(function(isMember, idx) {
return isMember || checks[1][idx]
});
filterIsModerator(null, isModerator);
});
} else {
groups.isMember(uid, 'cid:' + cid + ':privileges:mods', filterIsModerator);
async.parallel([
async.apply(groups.isMember, uid, 'cid:' + cid + ':privileges:mods'),
async.apply(groups.isMember, uid, 'cid:' + cid + ':privileges:groups:moderate')
], function(err, checks) {
var isModerator = checks[0] || checks[1];
filterIsModerator(null, isModerator);
});
}
}
};