From a07a6c9b79e8f49c9c8f69cd9fcfd8a154b219c7 Mon Sep 17 00:00:00 2001 From: Sanjay Dalal Date: Mon, 14 Jun 2010 21:00:25 +0000 Subject: [PATCH] CSPACE-2141 when deleting a role its association(s) with permissions are deleted test: authorization-mgt M authorization/PermissionResource.java M authorization/RoleResource.java M authorization/PermissionRoleSubResource.java --- .../services/authorization/PermissionResource.java | 8 ++++---- .../services/authorization/PermissionRoleSubResource.java | 2 +- .../services/authorization/RoleResource.java | 6 ++++++ 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/services/authorization-mgt/service/src/main/java/org/collectionspace/services/authorization/PermissionResource.java b/services/authorization-mgt/service/src/main/java/org/collectionspace/services/authorization/PermissionResource.java index 08457e975..41636b45d 100644 --- a/services/authorization-mgt/service/src/main/java/org/collectionspace/services/authorization/PermissionResource.java +++ b/services/authorization-mgt/service/src/main/java/org/collectionspace/services/authorization/PermissionResource.java @@ -348,14 +348,14 @@ public class PermissionResource throw new WebApplicationException(response); } try { - //FIXME ideally the following two ops shoudl be in the same tx CSPACE-658 + //FIXME ideally the following two ops should be in the same tx CSPACE-658 //delete all relationships for this permission PermissionRoleSubResource subResource = new PermissionRoleSubResource(PermissionRoleSubResource.PERMISSION_PERMROLE_SERVICE); subResource.deletePermissionRole(csid, SubjectType.ROLE); - //delete permissions at the provider too - //at the PermissionRoleSubResource/DocHandler levels, there is no visibility - //if permission is deleted + //delete permissions in the authz provider too + //at the PermissionRoleSubResource/DocHandler level, there is no visibility + //if permission is deleted, so do it here AuthorizationDelegate.deletePermissions(csid); ServiceContext ctx = createServiceContext((Permission) null, Permission.class); diff --git a/services/authorization-mgt/service/src/main/java/org/collectionspace/services/authorization/PermissionRoleSubResource.java b/services/authorization-mgt/service/src/main/java/org/collectionspace/services/authorization/PermissionRoleSubResource.java index a6195c8f0..6215c8df0 100644 --- a/services/authorization-mgt/service/src/main/java/org/collectionspace/services/authorization/PermissionRoleSubResource.java +++ b/services/authorization-mgt/service/src/main/java/org/collectionspace/services/authorization/PermissionRoleSubResource.java @@ -196,7 +196,7 @@ public class PermissionRoleSubResource * csid of object (permission/role) and subject (role/permission) * @param csid * @param subject - * @param input with role and permissions to delete + * @param input with role and permission relationships to delete * @return * @throws Exception */ diff --git a/services/authorization-mgt/service/src/main/java/org/collectionspace/services/authorization/RoleResource.java b/services/authorization-mgt/service/src/main/java/org/collectionspace/services/authorization/RoleResource.java index 03e0767d8..f94135106 100644 --- a/services/authorization-mgt/service/src/main/java/org/collectionspace/services/authorization/RoleResource.java +++ b/services/authorization-mgt/service/src/main/java/org/collectionspace/services/authorization/RoleResource.java @@ -350,6 +350,12 @@ public class RoleResource throw new WebApplicationException(response); } try { + //FIXME ideally the following two ops should be in the same tx CSPACE-658 + //delete all relationships for this permission + PermissionRoleSubResource subResource = + new PermissionRoleSubResource(PermissionRoleSubResource.ROLE_PERMROLE_SERVICE); + subResource.deletePermissionRole(csid, SubjectType.PERMISSION); + ServiceContext ctx = createServiceContext((Role) null, Role.class); ((JpaStorageClientImpl) getStorageClient(ctx)).deleteWhere(ctx, csid); return Response.status(HttpResponseCodes.SC_OK).build(); -- 2.47.3