From 72afddcfb1a5ad50e77903fc4dabf96bc4342678 Mon Sep 17 00:00:00 2001 From: Francesco Mangiacrapa Date: Fri, 13 Mar 2015 16:06:15 +0000 Subject: [PATCH] chagend validateACLToUser to check parent permission git-svn-id: http://svn.d4science-ii.research-infrastructures.eu/gcube/trunk/portlets/user/workspace-tree-widget@113605 82a268e6-3cf1-43bd-a215-b396298e98cf --- .../user/workspace/server/GWTWorkspaceServiceImpl.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/gcube/portlets/user/workspace/server/GWTWorkspaceServiceImpl.java b/src/main/java/org/gcube/portlets/user/workspace/server/GWTWorkspaceServiceImpl.java index 88358f3..0511653 100644 --- a/src/main/java/org/gcube/portlets/user/workspace/server/GWTWorkspaceServiceImpl.java +++ b/src/main/java/org/gcube/portlets/user/workspace/server/GWTWorkspaceServiceImpl.java @@ -2998,6 +2998,13 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT Workspace workspace = getWorkspace(); WorkspaceFolder folder = (WorkspaceFolder) workspace.getItem(folderId); + if(!folder.getType().equals(WorkspaceItemType.SHARED_FOLDER)){ //IS NOT ROOT SHARED FOLDER? + WorkspaceFolder parent = folder.getParent(); + if(parent!=null) + folder = parent; + else + workspaceLogger.warn("Parent folder of folder: "+folder.getName() + " is null, using current folder"); + } Map> mapACL = folder.getACLOwner(); ACLType settingACL = ACLType.valueOf(aclType); @@ -3035,7 +3042,7 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT //CHANGE ACL IS NOT VALID workspaceLogger.trace("Reject ACL: "+settingACL+ " to "+username); validLogins.remove(username); - errors.add("Unable to grant the privilege "+settingACL+" for "+fullname+", it's lower than (already assigned) "+ aclHL); + errors.add("Unable to grant the privilege "+settingACL+" for "+fullname+", it's lower than (parent privilege) "+ aclHL); break; }else if(cmp==0){ //SAME ACL