1
0
mirror of https://github.com/kakwa/ldapcherry synced 2024-11-25 02:34:31 +01:00

create reverse structure to deduce which roles a group belongs

This commit is contained in:
kakwa 2015-06-07 12:17:15 +02:00
parent 247a1fed3a
commit e9d4b381f4

View File

@ -35,9 +35,11 @@ class Roles:
except DumplicatedKey as e: except DumplicatedKey as e:
raise DumplicateRoleKey(e.key) raise DumplicateRoleKey(e.key)
stream.close() stream.close()
self.graph = {} self.graph = {}
self.roles = {} self.roles = {}
self.flatten = {} self.flatten = {}
self.group2roles = {}
self.admin_roles = [] self.admin_roles = []
self._nest() self._nest()
@ -70,6 +72,7 @@ class Roles:
del role['subroles'] del role['subroles']
self.flatten[roleid] = role self.flatten[roleid] = role
def _set_admin(self, role): def _set_admin(self, role):
for r in role['subroles']: for r in role['subroles']:
self.admin_roles.append(r) self.admin_roles.append(r)
@ -123,6 +126,14 @@ class Roles:
# Create the nested groups # Create the nested groups
for roleid in self.flatten: for roleid in self.flatten:
role = copy.deepcopy(self.flatten[roleid]) role = copy.deepcopy(self.flatten[roleid])
# create reverse groups 2 roles
for b in role['backends_groups']:
for g in role['backends_groups'][b]:
if not b in self.group2roles:
self.group2roles[b] = {}
if not g in self.group2roles[b]:
self.group2roles[b][g] = Set([])
self.group2roles[b][g].add(roleid)
parents[roleid]=[] parents[roleid]=[]
for roleid2 in self.flatten: for roleid2 in self.flatten: