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
This commit is contained in:
Costantino Perciante 2017-11-28 11:53:16 +00:00
parent 08495b225f
commit 05e287c17e
3 changed files with 70 additions and 32 deletions

View File

@ -4,6 +4,9 @@
<wb-resource deploy-path="/" source-path="/src/main/webapp" tag="defaultRootSource"/>
<wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/java"/>
<wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/resources"/>
<dependent-module archiveName="grsf-manage-widget-1.3.0-SNAPSHOT.jar" deploy-path="/WEB-INF/lib" handle="module:/resource/grsf-manage-widget/grsf-manage-widget">
<dependency-type>uses</dependency-type>
</dependent-module>
<property name="context-root" value="gcube-ckan-datacatalog"/>
<property name="java-output-path" value="/gcube-ckan-datacatalog/target/gcube-ckan-datacatalog-1.0.0-SNAPSHOT/WEB-INF/classes"/>
</wb-module>

View File

@ -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);
}
});
}

View File

@ -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;
}
}