'use strict'; var async = require('async'); var groups = require('../groups'); var helpers = {}; helpers.some = function(tasks, callback) { async.some(tasks, function(task, next) { task(function(err, result) { next(!err && result); }); }, function(result) { callback(null, result); }); }; helpers.isUserAllowedTo = function(privilege, uid, cid, callback) { if (Array.isArray(privilege) && !Array.isArray(cid)) { isUserAllowedToPrivileges(privilege, uid, cid, callback); } else if (Array.isArray(cid) && !Array.isArray(privilege)) { isUserAllowedToCids(privilege, uid, cid, callback); } else { return callback(new Error('[[error:invalid-data]]')); } }; function isUserAllowedToCids(privilege, uid, cids, callback) { if (parseInt(uid, 10) === 0) { return isGuestAllowedToCids(privilege, cids, callback); } var userKeys = [], groupKeys = []; for (var i=0; i