From 22c499d77165c165267fd537ff2e338a239ef08f Mon Sep 17 00:00:00 2001 From: "massimiliano.assante" Date: Tue, 13 Feb 2018 13:44:14 +0000 Subject: [PATCH] git-svn-id: http://svn.research-infrastructures.eu/public/d4science/gcube/trunk/portlets/user/catalogue-badge-portlet@163211 82a268e6-3cf1-43bd-a215-b396298e98cf --- pom.xml | 4 + .../PortletViewController.java | 81 +++++++++++++------ src/main/webapp/WEB-INF/liferay-display.xml | 2 +- .../WEB-INF/liferay-plugin-package.properties | 8 +- src/main/webapp/WEB-INF/portlet.xml | 4 +- .../Catalogue-badge-portlet-portlet.xml | 2 +- 6 files changed, 68 insertions(+), 33 deletions(-) rename src/main/java/org/gcube/portlets/user/{ => cataloguebadge}/PortletViewController.java (58%) diff --git a/pom.xml b/pom.xml index 8a0b623..873d383 100644 --- a/pom.xml +++ b/pom.xml @@ -54,6 +54,10 @@ [2.4.1-SNAPSHOT, 3.0.0-SNAPSHOT) compile + + org.gcube.dvos + usermanagement-core + org.gcube.common.portal portal-manager diff --git a/src/main/java/org/gcube/portlets/user/PortletViewController.java b/src/main/java/org/gcube/portlets/user/cataloguebadge/PortletViewController.java similarity index 58% rename from src/main/java/org/gcube/portlets/user/PortletViewController.java rename to src/main/java/org/gcube/portlets/user/cataloguebadge/PortletViewController.java index b9222a8..50f01ac 100644 --- a/src/main/java/org/gcube/portlets/user/PortletViewController.java +++ b/src/main/java/org/gcube/portlets/user/cataloguebadge/PortletViewController.java @@ -12,25 +12,30 @@ * details. */ -package org.gcube.portlets.user; +package org.gcube.portlets.user.cataloguebadge; import java.text.DecimalFormat; import javax.portlet.RenderRequest; import javax.portlet.RenderResponse; +import javax.servlet.http.HttpServletRequest; import org.gcube.common.portal.GCubePortalConstants; import org.gcube.common.portal.PortalContext; +import org.gcube.datacatalogue.ckanutillibrary.server.ApplicationProfileScopePerUrlReader; import org.gcube.datacatalogue.ckanutillibrary.server.DataCatalogueFactory; import org.gcube.datacatalogue.ckanutillibrary.server.DataCatalogueImpl; -import org.gcube.datacatalogue.ckanutillibrary.shared.LandingPages; import org.gcube.datacatalogue.ckanutillibrary.shared.Statistics; +import org.gcube.vomanagement.usermanagement.GroupManager; +import org.gcube.vomanagement.usermanagement.impl.LiferayGroupManager; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.portlet.bind.annotation.RenderMapping; +import com.liferay.portal.kernel.log.Log; +import com.liferay.portal.kernel.log.LogFactoryUtil; import com.liferay.portal.kernel.util.ReleaseInfo; import com.liferay.portal.model.Group; import com.liferay.portal.service.GroupLocalServiceUtil; @@ -39,59 +44,83 @@ import com.liferay.portal.util.PortalUtil; @Controller @RequestMapping("VIEW") public class PortletViewController { + private static Log _log = LogFactoryUtil.getLog(PortletViewController.class); private DataCatalogueFactory factory = DataCatalogueFactory.getFactory(); private static final long K = 1000; private static final long M = K * K; private static final long G = M * K; - + + private static GroupManager gm = new LiferayGroupManager(); + @RenderMapping public String question(RenderRequest request,RenderResponse response, Model model) { model.addAttribute("releaseInfo", ReleaseInfo.getReleaseInfo()); try { + HttpServletRequest httpServletRequest = PortalUtil.getHttpServletRequest(request); + long groupId = PortalUtil.getScopeGroupId(request); PortalContext pContext = PortalContext.getConfiguration(); String context = pContext.getCurrentScope(""+groupId); String catalogueURL = getCatalougeFriendlyURL(GroupLocalServiceUtil.getGroup(groupId)); - DataCatalogueImpl utils = factory.getUtilsPerScope(context); + DataCatalogueImpl utils = null; + if (gm.isRootVO(groupId)) { + String gatewaySiteURL = pContext.getGatewayURL(httpServletRequest); + if (!gatewaySiteURL.startsWith("https")) + gatewaySiteURL = gatewaySiteURL.replaceAll("http:", "https:"); + String siteLandingPage = pContext.getSiteLandingPagePath(httpServletRequest); + String clientURL = gatewaySiteURL+siteLandingPage; + System.out.println(clientURL); + try { + String appPerScopeURL = ApplicationProfileScopePerUrlReader.getScopePerUrl(clientURL); + _log.info("Catalogue for this Gateway is in this scope: " + appPerScopeURL); + utils = factory.getUtilsPerScope(appPerScopeURL); + } catch (Exception e) { + _log.warn("Returning default catalogue for the context, could not find the catologue for this Gateway: " + clientURL); + utils = factory.getUtilsPerScope(context); + } + } + else { + utils = factory.getUtilsPerScope(context); + } Statistics stats = utils.getStatistics(); model.addAttribute("itemsNo", convertToStringRepresentation(stats.getNumItems())); model.addAttribute("groupsNo", stats.getNumGroups()); model.addAttribute("organisationsNo", stats.getNumOrganizations()); model.addAttribute("typesNo", stats.getNumTypes()); model.addAttribute("catalogueURL", catalogueURL); - + } catch (Exception e) { - e.printStackTrace(); + e.printStackTrace(); } return "Catalogue-badge-portlet/view"; } public static String convertToStringRepresentation(final long value){ - final long[] dividers = new long[] { G, M, K, 1 }; - final String[] units = new String[] {"Giga", "M", "K", ""}; - if(value < 1) - throw new IllegalArgumentException("Invalid file size: " + value); - String result = null; - for(int i = 0; i < dividers.length; i++){ - final long divider = dividers[i]; - if(value >= divider){ - result = format(value, divider, units[i]); - break; - } - } - return result; + final long[] dividers = new long[] { G, M, K, 1 }; + final String[] units = new String[] {"Giga", "M", "K", ""}; + if(value < 1) + throw new IllegalArgumentException("Invalid file size: " + value); + String result = null; + for(int i = 0; i < dividers.length; i++){ + final long divider = dividers[i]; + if(value >= divider){ + result = format(value, divider, units[i]); + break; + } + } + return result; } private static String format(final long value, - final long divider, - final String unit){ - final double result = - divider > 1 ? (double) value / (double) divider : (double) value; - return new DecimalFormat("#,##0.#").format(result) + " " + unit; + final long divider, + final String unit){ + final double result = + divider > 1 ? (double) value / (double) divider : (double) value; + return new DecimalFormat("#,##0.#").format(result) + " " + unit; } - + /** * @param currentGroup * @return Returns the friendly u r l of this group. @@ -103,4 +132,6 @@ public class PortletViewController { .append(GCubePortalConstants.CATALOGUE_FRIENDLY_URL); return sb.toString(); } + + } \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/liferay-display.xml b/src/main/webapp/WEB-INF/liferay-display.xml index 3c84f12..a5285d1 100644 --- a/src/main/webapp/WEB-INF/liferay-display.xml +++ b/src/main/webapp/WEB-INF/liferay-display.xml @@ -2,7 +2,7 @@ - + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/liferay-plugin-package.properties b/src/main/webapp/WEB-INF/liferay-plugin-package.properties index cd68562..595b623 100644 --- a/src/main/webapp/WEB-INF/liferay-plugin-package.properties +++ b/src/main/webapp/WEB-INF/liferay-plugin-package.properties @@ -1,9 +1,9 @@ name=Catalogue-badge-portlet module-group-id=liferay -module-incremental-version=1 +module-incremental-version=2 tags= short-description= change-log= -page-url=http://www.liferay.com -author=Liferay, Inc. -licenses=LGPL \ No newline at end of file +page-url=http://www.gcube-system.org +author=M. Assante +licenses=EUPL diff --git a/src/main/webapp/WEB-INF/portlet.xml b/src/main/webapp/WEB-INF/portlet.xml index 1159b33..85a6434 100644 --- a/src/main/webapp/WEB-INF/portlet.xml +++ b/src/main/webapp/WEB-INF/portlet.xml @@ -15,8 +15,8 @@ Catalogue - Catalogue-badge-portlet - Catalogue-badge-portlet + Catalogue + Catalogue administrator diff --git a/src/main/webapp/WEB-INF/spring-context/portlet/Catalogue-badge-portlet-portlet.xml b/src/main/webapp/WEB-INF/spring-context/portlet/Catalogue-badge-portlet-portlet.xml index 73a23d8..d58d2b8 100644 --- a/src/main/webapp/WEB-INF/spring-context/portlet/Catalogue-badge-portlet-portlet.xml +++ b/src/main/webapp/WEB-INF/spring-context/portlet/Catalogue-badge-portlet-portlet.xml @@ -6,5 +6,5 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd" > - + \ No newline at end of file