diff --git a/src/main/java/org/gcube/portlets/user/workspace/client/view/windows/DialogGetInfo.java b/src/main/java/org/gcube/portlets/user/workspace/client/view/windows/DialogGetInfo.java index 0207d6d..78d97d3 100644 --- a/src/main/java/org/gcube/portlets/user/workspace/client/view/windows/DialogGetInfo.java +++ b/src/main/java/org/gcube/portlets/user/workspace/client/view/windows/DialogGetInfo.java @@ -176,7 +176,7 @@ public class DialogGetInfo extends Dialog { add(textAreaSharedWith); */ // htmlUsersWidget.setStyleAttribute("border", "1px solid #B5B8C8"); - loadListSharedContacts(fileModel.getIdentifier()); + loadACLsDescriptionForSharedFolder(fileModel.getIdentifier()); htmlUsersWidget.setHeight(heightTextArea); htmlUsersWidget.setWidth("297px"); hp.add(htmlUsersWidget); @@ -356,7 +356,7 @@ public class DialogGetInfo extends Dialog { // }); // } - private void loadListSharedContacts(String sharedId){ + private void loadACLsDescriptionForSharedFolder(String sharedId){ htmlUsersWidget.mask(); 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 a89885a..a4fa2f6 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 @@ -2898,8 +2898,10 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT Workspace workspace = getWorkspace(); WorkspaceItem wsItem = workspace.getItem(folderId); - if(wsItem!=null && wsItem.isShared()){ + if(isASharedFolder(wsItem, false)){ workspaceLogger.trace("Get SharedFolderForId: folder id "+folderId+" is shared"); + + //TODO REMOVE wsItem.getIdSharedFolder() WorkspaceSharedFolder wsFolder = (WorkspaceSharedFolder) workspace.getItem(wsItem.getIdSharedFolder()); if(wsFolder!=null){ @@ -2910,12 +2912,62 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT workspaceLogger.trace("Source item is not a shared folder, throw exception"); throw new Exception("Source item is not a shared folder"); } + + //TODO USE THIS +// return (WorkspaceFolder) wsItem; }else{ workspaceLogger.trace("Source item is null or not shared, throw exception"); throw new Exception("Source item is null or not shared"); } } + /** + * + * @param itemID + * @param asRoot true check if itemID is root, not otherwise + * @return + */ + + public boolean isASharedFolder(String itemID, boolean asRoot){ + try { + + if(itemID==null) + throw new Exception("ItemId is null"); + + Workspace workspace = getWorkspace(); + WorkspaceItem item = workspace.getItem(itemID); + + return isASharedFolder(item, asRoot); + + }catch(Exception e){ + workspaceLogger.error("Error in server isASharedFolder", e); + return false; + } + } + + /** + * @see #isASharedFolder(String, boolean) + * @param item + * @param asRoot + * @return + */ + public boolean isASharedFolder(WorkspaceItem item, boolean asRoot){ + try { + + if(item!=null && item.isFolder() && item.isShared()){ //IS A SHARED SUB-FOLDER + if(asRoot) + return item.getType().equals(WorkspaceItemType.SHARED_FOLDER); //IS ROOT? + + return true; + } + + return false; + }catch(Exception e){ + workspaceLogger.error("Error in server isASharedFolder", e); + return false; + } + } + /**