From 212419b86b701f4dee127ad3c4e4049ed94aeead Mon Sep 17 00:00:00 2001 From: "massimiliano.assante" Date: Mon, 23 Apr 2018 15:13:37 +0000 Subject: [PATCH] implemented the context's dependent capability: whenever ina VRE context it shows the VRE Folder content only git-svn-id: http://svn.research-infrastructures.eu/public/d4science/gcube/trunk/portlets/user/workspace-widget-portlet@167179 82a268e6-3cf1-43bd-a215-b396298e98cf --- .../gcube/portlets/user/wswidget/Utils.java | 2 +- .../user/wswidget/WorkspaceWidget.java | 28 +++++++++++++------ .../user/wswidget/shared/AuthorizedUser.java | 16 ++++++++--- .../portlets/user/wswidget/shared/WSItem.java | 10 +++++++ 4 files changed, 42 insertions(+), 14 deletions(-) diff --git a/src/main/java/org/gcube/portlets/user/wswidget/Utils.java b/src/main/java/org/gcube/portlets/user/wswidget/Utils.java index 3dffcd9..f471d71 100644 --- a/src/main/java/org/gcube/portlets/user/wswidget/Utils.java +++ b/src/main/java/org/gcube/portlets/user/wswidget/Utils.java @@ -238,7 +238,7 @@ public class Utils { public static ImageType getFileIconImageType(String extension) { if (extension == null || extension.compareTo("") == 0) return ImageType.NONE; - + extension = extension.toLowerCase(); switch (extension) { case "doc": case "docx": diff --git a/src/main/java/org/gcube/portlets/user/wswidget/WorkspaceWidget.java b/src/main/java/org/gcube/portlets/user/wswidget/WorkspaceWidget.java index d841a9f..df07ce5 100644 --- a/src/main/java/org/gcube/portlets/user/wswidget/WorkspaceWidget.java +++ b/src/main/java/org/gcube/portlets/user/wswidget/WorkspaceWidget.java @@ -29,6 +29,7 @@ import com.liferay.portal.kernel.json.JSONObject; import com.liferay.portal.kernel.log.LogFactoryUtil; import com.liferay.portal.kernel.servlet.ServletResponseUtil; import com.liferay.portal.kernel.util.ParamUtil; +import com.liferay.portal.service.GroupLocalServiceUtil; import com.liferay.portal.util.PortalUtil; import com.liferay.util.bridges.mvc.MVCPortlet; @@ -70,8 +71,8 @@ public class WorkspaceWidget extends MVCPortlet { listItems(resourceRequest, resourceResponse, selectedItemId, selectedItemName, start, length, draw); } } - - + + private void listItems(ResourceRequest request, ResourceResponse resourceResponse, String itemId, String itemName, int start, int offset, int draw) { try { AuthorizedUser authUser = setAuthorizationToken(request); @@ -80,11 +81,21 @@ public class WorkspaceWidget extends MVCPortlet { WSItem clicked = null; int count = 0; if (itemId.compareTo("root") == 0) { - //here we have to check is is a VRE, in that case the content of the VRE Folder is the root - itemId = getRootItem(request).getId(); - itemsList = StorageHubServiceUtil.getRootChildren(authUser, start, offset); - toSet = new Breadcrumb(itemId, Utils.getCurrentUser(request).getFirstName()+"\'s home"); - request.getPortletSession().setAttribute(BREADCRUMB_ATTR, toSet, PortletSession.APPLICATION_SCOPE); + //here we have to check if is a VRE, in that case the content of the VRE Folder is the root + long groupId = PortalUtil.getScopeGroupId(request); + if (GroupLocalServiceUtil.getParentGroups(groupId).isEmpty()) { //is in Site / RootVO + itemId = getRootItem(request).getId(); + itemsList = StorageHubServiceUtil.getRootChildren(authUser, start, offset); + toSet = new Breadcrumb(itemId, Utils.getCurrentUser(request).getFirstName()+"\'s home"); + request.getPortletSession().setAttribute(BREADCRUMB_ATTR, toSet, PortletSession.APPLICATION_SCOPE); + } else { //is in a VRE + WorkspaceManagerClient wsclient = AbstractPlugin.workspace().build(); + itemId = wsclient.getVreFolder("hl:accounting").getId(); + itemsList = StorageHubServiceUtil.getItemChildren(authUser, itemId, itemId, start, offset); + String groupName = GroupLocalServiceUtil.getGroup(groupId).getName(); + toSet = new Breadcrumb(itemId, groupName+"\'s VRE home"); + request.getPortletSession().setAttribute(BREADCRUMB_ATTR, toSet, PortletSession.APPLICATION_SCOPE); + } } else { _log.debug("non root"); @@ -218,7 +229,6 @@ public class WorkspaceWidget extends MVCPortlet { String scope = Utils.getCurrentContext(request); String authorizationToken = Utils.getCurrentUserToken(scope, currentUser.getUsername()); SecurityTokenProvider.instance.set(authorizationToken); - return new AuthorizedUser(currentUser, authorizationToken); + return new AuthorizedUser(currentUser, authorizationToken, scope); } - } diff --git a/src/main/java/org/gcube/portlets/user/wswidget/shared/AuthorizedUser.java b/src/main/java/org/gcube/portlets/user/wswidget/shared/AuthorizedUser.java index 4119eb3..ac60c3f 100644 --- a/src/main/java/org/gcube/portlets/user/wswidget/shared/AuthorizedUser.java +++ b/src/main/java/org/gcube/portlets/user/wswidget/shared/AuthorizedUser.java @@ -5,10 +5,12 @@ import org.gcube.vomanagement.usermanagement.model.GCubeUser; public class AuthorizedUser { private GCubeUser user; private String token; - public AuthorizedUser(GCubeUser user, String token) { + private String context; + public AuthorizedUser(GCubeUser user, String token, String context) { super(); this.user = user; this.token = token; + this.context = context; } public GCubeUser getUser() { return user; @@ -22,6 +24,12 @@ public class AuthorizedUser { public void setSecurityToken(String token) { this.token = token; } + public String getContext() { + return context; + } + public void setContext(String context) { + this.context = context; + } @Override public String toString() { StringBuilder builder = new StringBuilder(); @@ -29,9 +37,9 @@ public class AuthorizedUser { builder.append(user); builder.append(", token="); builder.append(token); + builder.append(", context="); + builder.append(context); builder.append("]"); return builder.toString(); - } - - + } } diff --git a/src/main/java/org/gcube/portlets/user/wswidget/shared/WSItem.java b/src/main/java/org/gcube/portlets/user/wswidget/shared/WSItem.java index ae893fd..ac7d732 100644 --- a/src/main/java/org/gcube/portlets/user/wswidget/shared/WSItem.java +++ b/src/main/java/org/gcube/portlets/user/wswidget/shared/WSItem.java @@ -30,6 +30,7 @@ public class WSItem implements ItemInterface { protected boolean isSpecialFolder = false; protected boolean isSharedFolder = false; protected boolean isRoot = false; + protected boolean hidden = false; protected Date dateCreated; protected Date lastUpdated; @@ -54,6 +55,7 @@ public class WSItem implements ItemInterface { this.name = name; this.type = isFolder?ItemType.PRIVATE_FOLDER:ItemType.UNKNOWN_TYPE; this.children = new ArrayList(); + this.hidden = false; } @@ -74,6 +76,7 @@ public class WSItem implements ItemInterface { this(parent, id, name, type, path, owner, isFolder, isRoot); this.dateCreated = creationDate; this.lastUpdated = lastUpdated; + this.hidden = false; } @@ -98,6 +101,7 @@ public class WSItem implements ItemInterface { this.owner = owner; this.isRoot = isRoot; this.isFolder = isFolder; + this.hidden = false; } @@ -305,6 +309,12 @@ public class WSItem implements ItemInterface { this.isSpecialFolder = isSpecialFolder; } + public boolean isHidden() { + return hidden; + } + public void setHidden(boolean hidden) { + this.hidden = hidden; + } /** * Gets the path. *