From 9ae8ee861abe0f167951fef2e24e7b74015981e8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Sun, 29 May 2016 21:52:13 +0300 Subject: [PATCH] closes #4700 --- src/socket.io/admin/categories.js | 25 ++++++------------------- 1 file changed, 6 insertions(+), 19 deletions(-) diff --git a/src/socket.io/admin/categories.js b/src/socket.io/admin/categories.js index 4061bb001a..b2186b9e3d 100644 --- a/src/socket.io/admin/categories.js +++ b/src/socket.io/admin/categories.js @@ -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); }); }