Skip to content

Commit

Permalink
Merge branch '509-group-add-remove'
Browse files Browse the repository at this point in the history
  • Loading branch information
joetsoi committed Apr 11, 2013
2 parents f3bb02d + 5fff2bc commit a5c5b66
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 15 deletions.
38 changes: 23 additions & 15 deletions ckan/lib/dictization/model_save.py
Expand Up @@ -229,33 +229,41 @@ def package_membership_list_save(group_dicts, package, context):
group = session.query(model.Group).get(id)
else:
group = session.query(model.Group).filter_by(name=name).first()
groups.add(group)
if group:
groups.add(group)

## need to flush so we can get out the package id
model.Session.flush()
for group in groups - set(group_member.keys()):
if group:
member_obj = model.Member(table_id = package.id,
table_name = 'package',
group = group,
capacity = capacity,
group_id=group.id,
state = 'active')
session.add(member_obj)

# Remove any groups we are no longer in
for group in set(group_member.keys()) - groups:
member_obj = group_member[group]
if member_obj and member_obj.state == 'deleted':
continue
if new_authz.has_user_permission_for_group_or_org(
member_obj.group_id, user, 'read'):
member_obj.capacity = capacity
member_obj.state = 'deleted'
session.add(member_obj)

for group in set(group_member.keys()) & groups:
member_obj = group_member[group]
# Add any new groups
for group in groups:
member_obj = group_member.get(group)
if member_obj and member_obj.state == 'active':
continue
if new_authz.has_user_permission_for_group_or_org(
member_obj.group_id, user, 'read'):
member_obj.capacity = capacity
member_obj.state = 'active'
group.id, user, 'read'):
member_obj = group_member.get(group)
if member_obj:
member_obj.capacity = capacity
member_obj.state = 'active'
else:
member_obj = model.Member(table_id=package.id,
table_name='package',
group=group,
capacity=capacity,
group_id=group.id,
state = 'active')
session.add(member_obj)


Expand Down
1 change: 1 addition & 0 deletions ckan/tests/lib/test_dictization.py
Expand Up @@ -359,6 +359,7 @@ def test_07_table_simple_save(self):
def test_08_package_save(self):

context = {"model": model,
"user": 'testsysadmin',
"session": model.Session}

anna1 = model.Session.query(model.Package).filter_by(name='annakarenina').one()
Expand Down

0 comments on commit a5c5b66

Please sign in to comment.