From 6e9706dc64ab98f93bd2f306d3898c0e1b02c20f Mon Sep 17 00:00:00 2001 From: Harsha Kethineni Date: Wed, 13 Sep 2017 10:38:52 -0500 Subject: [PATCH 1/3] group perm update prop will add perm to projects --- api/handlers/listhandler.py | 1 + 1 file changed, 1 insertion(+) diff --git a/api/handlers/listhandler.py b/api/handlers/listhandler.py index 5da8dd754..fb2d51803 100644 --- a/api/handlers/listhandler.py +++ b/api/handlers/listhandler.py @@ -229,6 +229,7 @@ def put(self, cont_name, list_name, **kwargs): 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 From 2d5d761081c26e8145bb381985cef8838c5a7edb Mon Sep 17 00:00:00 2001 From: Harsha Kethineni Date: Wed, 13 Sep 2017 11:14:59 -0500 Subject: [PATCH 2/3] Test for prop group perm update to project w/o permission --- test/integration_tests/python/test_propagation.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/test/integration_tests/python/test_propagation.py b/test/integration_tests/python/test_propagation.py index 735cdb9bb..60face13d 100644 --- a/test/integration_tests/python/test_propagation.py +++ b/test/integration_tests/python/test_propagation.py @@ -212,6 +212,12 @@ def get_user_in_perms(perms, uid): 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 get_user_in_perms(perms, uid): 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) From a2b419c592c60e7b51b6a2f474eca95058844dd7 Mon Sep 17 00:00:00 2001 From: Harsha Kethineni Date: Wed, 20 Sep 2017 12:45:33 -0500 Subject: [PATCH 3/3] deleted project causing usage report errors --- test/integration_tests/python/test_propagation.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/test/integration_tests/python/test_propagation.py b/test/integration_tests/python/test_propagation.py index 60face13d..81c8cb580 100644 --- a/test/integration_tests/python/test_propagation.py +++ b/test/integration_tests/python/test_propagation.py @@ -293,6 +293,10 @@ def get_user_in_perms(perms, uid): 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): """