Skip to content
Snippets Groups Projects
Commit 7526d483 authored by Harsha Kethineni's avatar Harsha Kethineni Committed by GitHub
Browse files

Merge pull request #933 from scitran/group-prop-put

Adds user permissions when updating group permissions to projects without the user
parents 766c29a5 a2b419c5
No related branches found
No related tags found
No related merge requests found
......@@ -229,6 +229,7 @@ class PermissionsListHandler(ListHandler):
payload['_id'] = kwargs.get('_id')
if cont_name == 'groups' and self.request.params.get('propagate') =='true':
self._propagate_permissions(cont_name, _id, query={'permissions._id' : payload['_id']}, update={'$set': {'permissions.$.access': payload['access']}})
self._propagate_permissions(cont_name, _id, query={'permissions._id': {'$ne': payload['_id']}}, update={'$addToSet': {'permissions': payload}})
elif cont_name != 'groups':
self._propagate_permissions(cont_name, _id)
return result
......
......@@ -212,6 +212,12 @@ def test_add_and_remove_user_group_permission(data_builder, as_admin):
r = as_admin.post('/groups/' + group + '/permissions', json=payload, params={'propagate': 'true'})
assert r.ok
# Add project without default group perms
r = as_admin.post('/projects', params={'inherit': 'false'}, json={'label': 'project2', 'group': group})
assert r.ok
project2 = r.json()['_id']
r = as_admin.get('/groups/' + group)
perms = r.json()['permissions']
user = get_user_in_perms(perms, user_id)
......@@ -248,6 +254,11 @@ def test_add_and_remove_user_group_permission(data_builder, as_admin):
user = get_user_in_perms(perms, user_id)
assert r.ok and user and user['access'] == 'rw'
r = as_admin.get('/projects/' + project2)
perms = r.json()['permissions']
user = get_user_in_perms(perms, user_id)
assert r.ok and user and user['access'] == 'rw'
r = as_admin.get('/sessions/' + session)
perms = r.json()['permissions']
user = get_user_in_perms(perms, user_id)
......@@ -282,6 +293,10 @@ def test_add_and_remove_user_group_permission(data_builder, as_admin):
user = get_user_in_perms(perms, user_id)
assert r.ok and user is None
# Delete empty project 2
r= as_admin.delete('/projects/' + project2)
assert r.ok
# Test tag pool renaming and deletion
def test_add_rename_remove_group_tag(data_builder, as_admin):
"""
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment