From 043f9d64cc248b1d3f820499ba01c469419417af Mon Sep 17 00:00:00 2001 From: Christian Hofmaier Date: Thu, 2 Jul 2020 19:19:09 +0000 Subject: [permissionmanager] return group objects instead of id list --- server/lib/permissions/permissionhelper.js | 28 +++++++++++++++++++++++----- 1 file changed, 23 insertions(+), 5 deletions(-) (limited to 'server') diff --git a/server/lib/permissions/permissionhelper.js b/server/lib/permissions/permissionhelper.js index 7acf269..5185a62 100644 --- a/server/lib/permissions/permissionhelper.js +++ b/server/lib/permissions/permissionhelper.js @@ -73,11 +73,20 @@ async function getAllowedGroups (userid, permissionName) { // Get childs of whitelist groups, filtered by blacklist var whitelistChilds = await groupHelper.getAllChildren(whitelist, blacklist) - result = result.concat(whitelist.map(x => x.id)) - result = result.concat(whitelistChilds.subgroups.map(s => s.id)) + result = result.concat(whitelist) + result = result.concat(whitelistChilds.subgroups) } // Filter result for unique entries - return result.filter(function (elem, pos, arr) { return arr.indexOf(elem) === pos }) + const filteredGroups = [] + const groupMap = new Map() + for (const item of result) { + if (!groupMap.has(item.id)) { + groupMap.set(item.id, true) + filteredGroups.push(item) + } + } + result = filteredGroups + return result } } @@ -154,10 +163,19 @@ async function getAllowedClients (userid, permissionName) { // Get childs of whitelist groups, filtered by blacklist var whitelistChilds = await groupHelper.getAllChildren(whitelist, blacklist) - result = result.concat(whitelistChilds.clients.map(c => c.id)) + result = result.concat(whitelistChilds.clients) } // Filter result for unique entries - return result.filter(function (elem, pos, arr) { return arr.indexOf(elem) === pos }) + const filteredClients = [] + const clientMap = new Map() + for (const item of result) { + if (!clientMap.has(item.id)) { + clientMap.set(item.id, true) + filteredClients.push(item) + } + } + result = filteredClients + return result } } -- cgit v1.2.3-55-g7522