Skip to content

Commit

Permalink
[#2939] Sysadmins see all groups available
Browse files Browse the repository at this point in the history
  • Loading branch information
tobes committed Oct 10, 2012
1 parent 78ef5d8 commit 6f10ad4
Showing 1 changed file with 14 additions and 10 deletions.
24 changes: 14 additions & 10 deletions ckan/logic/action/get.py
Original file line number Diff line number Diff line change
Expand Up @@ -401,29 +401,33 @@ def group_list_authz(context, data_dict):

_check_access('group_list_authz',context, data_dict)

sysadmin = new_authz.is_sysadmin(user)
roles = ckan.new_authz.get_roles_with_permission('edit_group')
if not roles:
return []
user_id = new_authz.get_user_id_for_username(user, allow_none=True)
if not user_id:
return []

q = model.Session.query(model.Member) \
.filter(model.Member.table_name == 'user') \
.filter(model.Member.capacity.in_(roles)) \
.filter(model.Member.table_id == user_id)
group_ids = []
for row in q.all():
group_ids.append(row.group_id)
if not sysadmin:
q = model.Session.query(model.Member) \
.filter(model.Member.table_name == 'user') \
.filter(model.Member.capacity.in_(roles)) \
.filter(model.Member.table_id == user_id)
group_ids = []
for row in q.all():
group_ids.append(row.group_id)

if not group_ids:
return []
if not group_ids:
return []

q = model.Session.query(model.Group) \
.filter(model.Group.id.in_(group_ids)) \
.filter(model.Group.is_organization == False) \
.filter(model.Group.state == 'active')

if not sysadmin:
q = q.filter(model.Group.id.in_(group_ids))

groups = q.all()

if available_only:
Expand Down

0 comments on commit 6f10ad4

Please sign in to comment.