Skip to content

Commit

Permalink
[#2939] Improve the org/group list logic functions
Browse files Browse the repository at this point in the history
  • Loading branch information
tobes committed Oct 10, 2012
1 parent fae330c commit 469a4c9
Showing 1 changed file with 19 additions and 3 deletions.
22 changes: 19 additions & 3 deletions ckan/logic/action/get.py
Expand Up @@ -402,16 +402,23 @@ def group_list_authz(context, data_dict):
_check_access('group_list_authz',context, data_dict)

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 == new_authz.get_user_id_for_username(user))
.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 []

q = model.Session.query(model.Group) \
.filter(model.Group.id.in_(group_ids)) \
.filter(model.Group.is_organization == False) \
Expand Down Expand Up @@ -440,14 +447,23 @@ def organization_list_for_user(context, data_dict):

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 == new_authz.get_user_id_for_username(user))
.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 []

q = model.Session.query(model.Group) \
.filter(model.Group.id.in_(group_ids)) \
.filter(model.Group.is_organization == True) \
Expand Down

0 comments on commit 469a4c9

Please sign in to comment.