1
0
mirror of https://github.com/dkmstr/openuds.git synced 2025-03-20 06:50:23 +03:00

fixed meta group information

This commit is contained in:
Adolfo Gómez García 2017-01-25 12:28:28 +01:00
parent 0d085ba708
commit 32b5354a15

View File

@ -356,14 +356,38 @@ class Groups(DetailHandler):
uuid = processUuid(item)
group = parent.groups.get(uuid=processUuid(uuid))
def info(user):
return {
'id': user.uuid,
'name': user.name,
'real_name': user.real_name,
'state': user.state,
'last_access': user.last_access
}
res = []
for i in group.users.all():
res.append({
'id': i.uuid,
'name': i.name,
'real_name': i.real_name,
'state': i.state,
'last_access': i.last_access
})
if group.is_meta:
# Get all users for everygroup and
groups = getGroupsFromMeta((group,))
tmpSet = None
for g in groups:
gSet = set((i for i in g.users.all()))
if tmpSet is None:
tmpSet = gSet
else:
if group.meta_if_any:
tmpSet |= gSet
else:
tmpSet &= gSet
if len(tmpSet) == 0 :
break # If already empty, stop
users = list(tmpSet)
tmpSet = None
else:
users = group.users.all()
for i in users:
res.append(info(i))
return res