Repository: airavata Updated Branches: refs/heads/develop f4edced90 -> 118c7bcce
sending owner permission users along with read and write Project: http://git-wip-us.apache.org/repos/asf/airavata/repo Commit: http://git-wip-us.apache.org/repos/asf/airavata/commit/118c7bcc Tree: http://git-wip-us.apache.org/repos/asf/airavata/tree/118c7bcc Diff: http://git-wip-us.apache.org/repos/asf/airavata/diff/118c7bcc Branch: refs/heads/develop Commit: 118c7bccee8ee414a5c458421960abbe59b16816 Parents: f4edced Author: scnakandala <[email protected]> Authored: Thu Mar 23 15:59:42 2017 -0400 Committer: scnakandala <[email protected]> Committed: Thu Mar 23 15:59:42 2017 -0400 ---------------------------------------------------------------------- .../server/handler/AiravataServerHandler.java | 23 +++++++++++++------- 1 file changed, 15 insertions(+), 8 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/airavata/blob/118c7bcc/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/handler/AiravataServerHandler.java ---------------------------------------------------------------------- diff --git a/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/handler/AiravataServerHandler.java b/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/handler/AiravataServerHandler.java index 99f8fa4..3cabf3c 100644 --- a/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/handler/AiravataServerHandler.java +++ b/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/handler/AiravataServerHandler.java @@ -4657,22 +4657,29 @@ public class AiravataServerHandler implements Airavata.Iface { RegistryService.Client regClient = registryClientPool.getResource(); SharingRegistryService.Client sharingClient = sharingClientPool.getResource(); try { - List<String> accessibleUsers = new ArrayList<>(); - if(permissionType.equals(ResourcePermissionType.WRITE)) + HashSet<String> accessibleUsers = new HashSet<>(); + if (permissionType.equals(ResourcePermissionType.WRITE)) { sharingClient.getListOfSharedUsers(authzToken.getClaimsMap().get(Constants.GATEWAY_ID), resourceId, authzToken.getClaimsMap().get(Constants.GATEWAY_ID) - + ":WRITE").stream().forEach(u->accessibleUsers.add(u.userId)); - else if(permissionType.equals(ResourcePermissionType.READ)) + + ":WRITE").stream().forEach(u -> accessibleUsers.add(u.userId)); sharingClient.getListOfSharedUsers(authzToken.getClaimsMap().get(Constants.GATEWAY_ID), resourceId, authzToken.getClaimsMap().get(Constants.GATEWAY_ID) - + ":READ").stream().forEach(u->accessibleUsers.add(u.userId)); - else if(permissionType.equals(ResourcePermissionType.OWNER)) + + ":OWNER").stream().forEach(u -> accessibleUsers.add(u.userId)); + } else if (permissionType.equals(ResourcePermissionType.READ)) { sharingClient.getListOfSharedUsers(authzToken.getClaimsMap().get(Constants.GATEWAY_ID), resourceId, authzToken.getClaimsMap().get(Constants.GATEWAY_ID) - + ":OWNER").stream().forEach(u->accessibleUsers.add(u.userId)); + + ":READ").stream().forEach(u -> accessibleUsers.add(u.userId)); + sharingClient.getListOfSharedUsers(authzToken.getClaimsMap().get(Constants.GATEWAY_ID), + resourceId, authzToken.getClaimsMap().get(Constants.GATEWAY_ID) + + ":OWNER").stream().forEach(u -> accessibleUsers.add(u.userId)); + } else if (permissionType.equals(ResourcePermissionType.OWNER)) { + sharingClient.getListOfSharedUsers(authzToken.getClaimsMap().get(Constants.GATEWAY_ID), + resourceId, authzToken.getClaimsMap().get(Constants.GATEWAY_ID) + + ":OWNER").stream().forEach(u -> accessibleUsers.add(u.userId)); + } registryClientPool.returnResource(regClient); sharingClientPool.returnResource(sharingClient); - return accessibleUsers; + return new ArrayList<>(accessibleUsers); } catch (Exception e) { String msg = "Error in getting all accessible users for resource. Resource ID : " + resourceId + " Resource Type : " + resourceType.toString() ; logger.error(msg, e);
