v1.18.x
Barış Soner Uşaklı 9 years ago
parent e4afa67956
commit 9ae8ee861a

@ -72,38 +72,25 @@ Categories.getPrivilegeSettings = function(socket, cid, callback) {
};
Categories.copyPrivilegesToChildren = function(socket, cid, callback) {
async.parallel({
category: function(next) {
categories.getCategories([cid], socket.uid, next);
},
privileges: function(next) {
privileges.categories.list(cid, next);
}
}, function(err, results) {
categories.getCategories([cid], socket.uid, function(err, categories) {
if (err) {
return callback(err);
}
var category = results.category[0];
var category = categories[0];
async.eachSeries(category.children, function(child, next) {
copyPrivilegesToChildrenRecursive(child, results.privileges.groups, next);
copyPrivilegesToChildrenRecursive(cid, child, next);
}, callback);
});
};
function copyPrivilegesToChildrenRecursive(category, privilegeGroups, callback) {
async.eachSeries(privilegeGroups, function(privGroup, next) {
var privs = Object.keys(privGroup.privileges);
async.each(privs, function(privilege, next) {
var isSet = privGroup.privileges[privilege];
groups[isSet ? 'join' : 'leave']('cid:' + category.cid + ':privileges:' + privilege, privGroup.name, next);
}, next);
}, function(err) {
function copyPrivilegesToChildrenRecursive(parentCid, category, callback) {
categories.copyPrivilegesFrom(parentCid, category.cid, function(err) {
if (err) {
return callback(err);
}
async.eachSeries(category.children, function(child, next) {
copyPrivilegesToChildrenRecursive(child, privilegeGroups, next);
copyPrivilegesToChildrenRecursive(parentCid, child, next);
}, callback);
});
}

Loading…
Cancel
Save