in django_airavata/apps/api/serializers.py [0:0]
def _compute_all_revokes_and_grants(self, existing_permissions,
new_permissions):
grant_read_permission = []
grant_write_permission = []
grant_manage_sharing_permission = []
revoke_read_permission = []
revoke_write_permission = []
revoke_manage_sharing_permission = []
# Union the two sets of user/group ids
all_ids = existing_permissions.keys() | new_permissions.keys()
for id in all_ids:
revokes, grants = self._compute_revokes_and_grants(
existing_permissions.get(id),
new_permissions.get(id)
)
if ResourcePermissionType.READ in revokes:
revoke_read_permission.append(id)
if ResourcePermissionType.WRITE in revokes:
revoke_write_permission.append(id)
if ResourcePermissionType.MANAGE_SHARING in revokes:
revoke_manage_sharing_permission.append(id)
if ResourcePermissionType.READ in grants:
grant_read_permission.append(id)
if ResourcePermissionType.WRITE in grants:
grant_write_permission.append(id)
if ResourcePermissionType.MANAGE_SHARING in grants:
grant_manage_sharing_permission.append(id)
return (
grant_read_permission,
grant_write_permission,
grant_manage_sharing_permission,
revoke_read_permission,
revoke_write_permission,
revoke_manage_sharing_permission)