From 05e287c17e0e98d62db4f72468ba394ec7cae481 Mon Sep 17 00:00:00 2001 From: Costantino Perciante Date: Tue, 28 Nov 2017 11:53:16 +0000 Subject: [PATCH] removed handler for logout - added view per vre git-svn-id: http://svn.d4science-ii.research-infrastructures.eu/gcube/trunk/portlets/user/gcube-ckan-datacatalog@158855 82a268e6-3cf1-43bd-a215-b396298e98cf --- .settings/org.eclipse.wst.common.component | 3 + .../client/CkanEventHandlerManager.java | 64 +++++++++---------- .../GcubeCkanDataCatalogServiceImpl.java | 35 ++++++++++ 3 files changed, 70 insertions(+), 32 deletions(-) diff --git a/.settings/org.eclipse.wst.common.component b/.settings/org.eclipse.wst.common.component index 5fe3680..f7f80be 100644 --- a/.settings/org.eclipse.wst.common.component +++ b/.settings/org.eclipse.wst.common.component @@ -4,6 +4,9 @@ + + uses + diff --git a/src/main/java/org/gcube/portlets/gcubeckan/gcubeckandatacatalog/client/CkanEventHandlerManager.java b/src/main/java/org/gcube/portlets/gcubeckan/gcubeckandatacatalog/client/CkanEventHandlerManager.java index 1227476..cf27481 100644 --- a/src/main/java/org/gcube/portlets/gcubeckan/gcubeckandatacatalog/client/CkanEventHandlerManager.java +++ b/src/main/java/org/gcube/portlets/gcubeckan/gcubeckandatacatalog/client/CkanEventHandlerManager.java @@ -138,18 +138,18 @@ public class CkanEventHandlerManager { panel.instanceCkanFrame(request); } }); - + eventBus.addHandler(ShowTypesEvent.TYPE, new ShowTypesEventHandler() { - + @Override public void onShowTypes(ShowTypesEvent showTypes) { String request = getCkanRequest("/type", null); panel.instanceCkanFrame(request); - + } }); - + eventBus.addHandler( ShowOrganizationsEvent.TYPE, new ShowOrganizationsEventHandler() { @@ -193,26 +193,26 @@ public class CkanEventHandlerManager { } }); - eventBus.addHandler(NotifyLogoutEvent.TYPE, new NotifyLogoutEventHandler() { - - @Override - public void onLogout(NotifyLogoutEvent editMetadataEvent) { - - // CKanLeaveFrame frame = new CKanLeaveFrame(GCubeCkanDataCatalog.CKAN_LOGUT_SERVICE); - // DOM.appendChild(RootPanel.getBodyElement(), frame.getElement()); - } - }); - - eventBus.addHandler(IFrameInstanciedEvent.TYPE, new IFrameInstanciedEventHandler() { - - @Override - public void onNewInstance(IFrameInstanciedEvent iFrameInstanciedEvent) { - - panel.updateSize(); - if(logoutFromCKANURL==null) - instanceLogoutSystem(); - } - }); + // eventBus.addHandler(NotifyLogoutEvent.TYPE, new NotifyLogoutEventHandler() { + // + // @Override + // public void onLogout(NotifyLogoutEvent editMetadataEvent) { + // + // // CKanLeaveFrame frame = new CKanLeaveFrame(GCubeCkanDataCatalog.CKAN_LOGUT_SERVICE); + // // DOM.appendChild(RootPanel.getBodyElement(), frame.getElement()); + // } + // }); + // + // eventBus.addHandler(IFrameInstanciedEvent.TYPE, new IFrameInstanciedEventHandler() { + // + // @Override + // public void onNewInstance(IFrameInstanciedEvent iFrameInstanciedEvent) { + // + // panel.updateSize(); + // if(logoutFromCKANURL==null) + // instanceLogoutSystem(); + // } + // }); eventBus.addHandler(ShowManageProductWidgetEvent.TYPE, new ShowManageProductWidgetEventHandler() { @@ -221,25 +221,25 @@ public class CkanEventHandlerManager { new ManageProductWidget(event.getProductIdentifier(), eventBus); } }); - + eventBus.addHandler(ShareLinkEvent.TYPE, new ShareLinkEventHandler() { - + @Override public void onShareLink(ShareLinkEvent event) { - + new ShareCatalogueWidget(event.getUuidItem()); - + } }); - + // hide management panel if user is not allowed to manage eventBus.addHandler(HideManagementPanelEvent.TYPE, new HideManagementPanelEventHandler() { - + @Override public void onEvent(HideManagementPanelEvent hideEvent) { - + panel.showManagementPanel(false); - + } }); } diff --git a/src/main/java/org/gcube/portlets/gcubeckan/gcubeckandatacatalog/server/GcubeCkanDataCatalogServiceImpl.java b/src/main/java/org/gcube/portlets/gcubeckan/gcubeckandatacatalog/server/GcubeCkanDataCatalogServiceImpl.java index 24cdbad..dcbd2ca 100644 --- a/src/main/java/org/gcube/portlets/gcubeckan/gcubeckandatacatalog/server/GcubeCkanDataCatalogServiceImpl.java +++ b/src/main/java/org/gcube/portlets/gcubeckan/gcubeckandatacatalog/server/GcubeCkanDataCatalogServiceImpl.java @@ -2,6 +2,8 @@ package org.gcube.portlets.gcubeckan.gcubeckandatacatalog.server; import static org.gcube.common.authorization.client.Constants.authorizationService; +import java.net.URL; +import java.net.URLEncoder; import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -49,6 +51,7 @@ public class GcubeCkanDataCatalogServiceImpl extends RemoteServiceServlet implem public static String CKANCONNECTORCONTEXT = "CkanConnectorContext"; public static String CKANCONNECTORLOGOUT = "CkanConnectorLogout"; private static final Log logger = LogFactoryUtil.getLog(GcubeCkanDataCatalogServiceImpl.class); + private static final String VIEW_PER_ORGANIZATION_LIFERAY_CUSTOM_FIELD = "ViewPerVRECatalogue"; /** * Instanciate the ckan util library. @@ -88,7 +91,17 @@ public class GcubeCkanDataCatalogServiceImpl extends RemoteServiceServlet implem queryStringParameters = new String(valueDecoded); logger.info("queryStringParameters detected like Base64 and decoded like: "+queryStringParameters); } + + if(pathInfoParameter == null || pathInfoParameter.isEmpty()){ + boolean viewEnabled = viewPerOrganizationEnabled(); + if(viewEnabled){ + GroupManager gm = new LiferayGroupManager(); + String groupName = gm.getGroup(gm.getGroupIdFromInfrastructureScope(scopePerCurrentUrl)).getGroupName().toLowerCase(); + pathInfoParameter = "/organization_vre/" + groupName; + } + } + CkanConnectorAccessPoint ckAP = getCkanConnectorAccessPoint(pathInfoParameter, queryStringParameters, scopePerCurrentUrl); SessionUtil.saveCkanAccessPoint(this.getThreadLocalRequest().getSession(), scopePerCurrentUrl, ckAP); logger.info("Builded URI to CKAN Connector: "+ckAP.buildURI()); @@ -537,4 +550,26 @@ public class GcubeCkanDataCatalogServiceImpl extends RemoteServiceServlet implem } } } + + /** + * Ask to liferay + * @return + */ + public boolean viewPerOrganizationEnabled(){ + + boolean enabled = false; + String scopePerCurrentUrl = SessionUtil.getScopeFromClientUrl(getThreadLocalRequest()); + + + try{ + GroupManager gm = new LiferayGroupManager(); + enabled = (boolean) gm.readCustomAttr(gm.getGroupIdFromInfrastructureScope(scopePerCurrentUrl), VIEW_PER_ORGANIZATION_LIFERAY_CUSTOM_FIELD); + logger.debug("Read value for " + VIEW_PER_ORGANIZATION_LIFERAY_CUSTOM_FIELD + " is " + enabled); + }catch(Exception e){ + logger.error("Failed to parse custom field value", e); + } + return enabled; + + } + }