mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-11-01 11:35:55 +01:00
removed async.map
This commit is contained in:
@@ -57,7 +57,7 @@ module.exports = function(db, module) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
bulk.execute(function(err) {
|
bulk.execute(function(err) {
|
||||||
return callback(err);
|
callback(err);
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -153,6 +153,7 @@ module.exports = function(db, module) {
|
|||||||
if (err) {
|
if (err) {
|
||||||
return callback(err);
|
return callback(err);
|
||||||
}
|
}
|
||||||
|
|
||||||
var sets = {};
|
var sets = {};
|
||||||
data.forEach(function(set) {
|
data.forEach(function(set) {
|
||||||
sets[set._key] = set.members || [];
|
sets[set._key] = set.members || [];
|
||||||
|
|||||||
@@ -1,15 +1,18 @@
|
|||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
(function(Groups) {
|
var async = require('async'),
|
||||||
var async = require('async'),
|
winston = require('winston'),
|
||||||
winston = require('winston'),
|
_ = require('underscore'),
|
||||||
user = require('./user'),
|
user = require('./user'),
|
||||||
meta = require('./meta'),
|
meta = require('./meta'),
|
||||||
db = require('./database'),
|
db = require('./database'),
|
||||||
posts = require('./posts'),
|
posts = require('./posts'),
|
||||||
utils = require('../public/src/utils'),
|
utils = require('../public/src/utils');
|
||||||
|
|
||||||
ephemeralGroups = ['guests'],
|
|
||||||
|
(function(Groups) {
|
||||||
|
|
||||||
|
var ephemeralGroups = ['guests'],
|
||||||
|
|
||||||
internals = {
|
internals = {
|
||||||
filterGroups: function(groups, options) {
|
filterGroups: function(groups, options) {
|
||||||
@@ -186,7 +189,45 @@
|
|||||||
return callback(err);
|
return callback(err);
|
||||||
}
|
}
|
||||||
|
|
||||||
callback(null, isMembers.indexOf(true) !== -1)
|
callback(null, isMembers.indexOf(true) !== -1);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
Groups.isMemberOfGroupsList = function(uid, groupListKeys, callback) {
|
||||||
|
var sets = groupListKeys.map(function(groupName) {
|
||||||
|
return 'group:' + groupName + ':members';
|
||||||
|
});
|
||||||
|
|
||||||
|
db.getSetsMembers(sets, function(err, members) {
|
||||||
|
if (err) {
|
||||||
|
return callback(err);
|
||||||
|
}
|
||||||
|
|
||||||
|
var uniqueGroups = _.unique(_.flatten(members));
|
||||||
|
uniqueGroups = internals.removeEphemeralGroups(uniqueGroups);
|
||||||
|
|
||||||
|
Groups.isMemberOfGroups(uid, uniqueGroups, function(err, isMembers) {
|
||||||
|
if (err) {
|
||||||
|
return callback(err);
|
||||||
|
}
|
||||||
|
|
||||||
|
var map = {};
|
||||||
|
|
||||||
|
uniqueGroups.forEach(function(groupName, index) {
|
||||||
|
map[groupName] = isMembers[index];
|
||||||
|
});
|
||||||
|
|
||||||
|
var result = members.map(function(groupNames) {
|
||||||
|
for (var i=0; i<groupNames.length; ++i) {
|
||||||
|
if (map[groupNames[i]]) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
});
|
||||||
|
|
||||||
|
callback(null, result);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
@@ -418,7 +459,7 @@
|
|||||||
|
|
||||||
Groups.leave = function(groupName, uid, callback) {
|
Groups.leave = function(groupName, uid, callback) {
|
||||||
callback = callback || function() {};
|
callback = callback || function() {};
|
||||||
|
|
||||||
db.setRemove('group:' + groupName + ':members', uid, function(err) {
|
db.setRemove('group:' + groupName + ':members', uid, function(err) {
|
||||||
if (err) {
|
if (err) {
|
||||||
return callback(err);
|
return callback(err);
|
||||||
|
|||||||
@@ -42,9 +42,7 @@ helpers.isUserAllowedTo = function(privilege, uid, cids, callback) {
|
|||||||
groups.isMemberOfGroups(uid, userKeys, next);
|
groups.isMemberOfGroups(uid, userKeys, next);
|
||||||
},
|
},
|
||||||
hasGroupPrivilege: function(next) {
|
hasGroupPrivilege: function(next) {
|
||||||
async.map(groupKeys, function(groupKey, next) {
|
groups.isMemberOfGroupsList(uid, groupKeys, next);
|
||||||
groups.isMemberOfGroupList(uid, groupKey, next);
|
|
||||||
}, next);
|
|
||||||
}
|
}
|
||||||
}, function(err, results) {
|
}, function(err, results) {
|
||||||
if (err) {
|
if (err) {
|
||||||
@@ -56,7 +54,6 @@ helpers.isUserAllowedTo = function(privilege, uid, cids, callback) {
|
|||||||
result.push((!results.userPrivilegeExists[i] && !results.groupPrivilegeExists[i]) || results.hasUserPrivilege[i] || results.hasGroupPrivilege[i]);
|
result.push((!results.userPrivilegeExists[i] && !results.groupPrivilegeExists[i]) || results.hasUserPrivilege[i] || results.hasGroupPrivilege[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
callback(null, result);
|
callback(null, result);
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user