in django_airavata/apps/api/serializers.py [0:0]
def _compute_revokes_and_grants(self, current_permission=None,
new_permission=None):
read_permissions = set((ResourcePermissionType.READ,))
write_permissions = set((ResourcePermissionType.READ,
ResourcePermissionType.WRITE))
manage_share_permissions = set(
(ResourcePermissionType.READ,
ResourcePermissionType.WRITE,
ResourcePermissionType.MANAGE_SHARING))
current_permissions_set = set()
new_permissions_set = set()
if current_permission == ResourcePermissionType.READ:
current_permissions_set = read_permissions
elif current_permission == ResourcePermissionType.WRITE:
current_permissions_set = write_permissions
elif current_permission == ResourcePermissionType.MANAGE_SHARING:
current_permissions_set = manage_share_permissions
if new_permission == ResourcePermissionType.READ:
new_permissions_set = read_permissions
elif new_permission == ResourcePermissionType.WRITE:
new_permissions_set = write_permissions
elif new_permission == ResourcePermissionType.MANAGE_SHARING:
new_permissions_set = manage_share_permissions
# return tuple: permissions to revoke and permissions to grant
return (current_permissions_set - new_permissions_set,
new_permissions_set - current_permissions_set)