diff --git a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/GeoportalDataViewer.gwt.xml b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/GeoportalDataViewer.gwt.xml
index 1072670..85fba01 100644
--- a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/GeoportalDataViewer.gwt.xml
+++ b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/GeoportalDataViewer.gwt.xml
@@ -17,11 +17,14 @@
+
+
-
+
diff --git a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/GeoportalDataViewerConstants.java b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/GeoportalDataViewerConstants.java
index 25c0436..1d1ca6c 100644
--- a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/GeoportalDataViewerConstants.java
+++ b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/GeoportalDataViewerConstants.java
@@ -26,6 +26,7 @@ public class GeoportalDataViewerConstants {
//WAITING_SERVER_ACTION_SERVLET
public static final String UCD_ID_PARAMETER = "ucdID";
public static final String PROIECT_ID_PARAMETER = "projectID";
+ public static final String CONTEXT_ID_PARAMETER = "contextID";
public static final String GEOPORTAL_EXPORT_ACTION_SERVLET = GWT.getModuleBaseURL()
+ "geoportalexporterservice";
diff --git a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/ui/cms/project/ProjectViewer.java b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/ui/cms/project/ProjectViewer.java
index 33fd6c7..c7217f9 100644
--- a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/ui/cms/project/ProjectViewer.java
+++ b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/ui/cms/project/ProjectViewer.java
@@ -7,6 +7,7 @@ import org.gcube.application.geoportalcommon.shared.geoportal.geojson.GeoJSON;
import org.gcube.application.geoportalcommon.shared.geoportal.project.RelationshipDV;
import org.gcube.application.geoportalcommon.shared.geoportal.view.ProjectView;
import org.gcube.application.geoportalcommon.shared.geoportal.view.SectionView;
+import org.gcube.portal.clientcontext.client.GCubeClientContext;
import org.gcube.portlets.user.geoportaldataviewer.client.GeoportalDataViewerConstants;
import org.gcube.portlets.user.geoportaldataviewer.client.GeoportalDataViewerConstants.MAP_PROJECTION;
import org.gcube.portlets.user.geoportaldataviewer.client.GeoportalDataViewerServiceAsync;
@@ -222,12 +223,15 @@ public class ProjectViewer extends Composite {
// TODO: handle exception
}
+ String currentContextId = GCubeClientContext.getCurrentContextId();
+
StringBuilder builder = new StringBuilder();
builder.append(GeoportalDataViewerConstants.GEOPORTAL_EXPORT_ACTION_SERVLET + "?");
builder.append(GeoportalDataViewerConstants.UCD_ID_PARAMETER + "="
+ projectView.getTheProjectDV().getProfileID() + "&");
builder.append(GeoportalDataViewerConstants.PROIECT_ID_PARAMETER + "="
- + projectView.getTheProjectDV().getId());
+ + projectView.getTheProjectDV().getId() + "&");
+ builder.append(GeoportalDataViewerConstants.CONTEXT_ID_PARAMETER + "=" + currentContextId);
String geoportalExportActionServlet = builder.toString();
NewBrowserWindow.open(geoportalExportActionServlet, "_blank", null);
diff --git a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/server/GeoportalExporterActionServlet.java b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/server/GeoportalExporterActionServlet.java
index adbcb55..a1705f0 100644
--- a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/server/GeoportalExporterActionServlet.java
+++ b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/server/GeoportalExporterActionServlet.java
@@ -16,10 +16,12 @@ import javax.servlet.http.HttpServletResponse;
import org.apache.commons.io.IOUtils;
import org.apache.http.client.methods.HttpGet;
+import org.gcube.common.portal.PortalContext;
+import org.gcube.common.scope.api.ScopeProvider;
import org.gcube.portlets.user.geoportaldataviewer.client.GeoportalDataViewerConstants;
import org.gcube.portlets.user.geoportaldataviewer.server.mongoservice.GeoportalServiceIdentityProxy;
-import org.gcube.portlets.user.geoportaldataviewer.server.util.SessionUtil;
import org.gcube.portlets.user.uriresolvermanager.geoportal.GeoportalExporterAPI;
+import org.gcube.vomanagement.usermanagement.model.GCubeUser;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -59,12 +61,19 @@ public class GeoportalExporterActionServlet extends HttpServlet {
// setSecretManager();
String projectID = req.getParameter(GeoportalDataViewerConstants.PROIECT_ID_PARAMETER);
String ucdID = req.getParameter(GeoportalDataViewerConstants.UCD_ID_PARAMETER);
-
- logger.info("doGet called with Input Params [projectID: " + projectID + ", ucdID: " + ucdID + "]");
-
+ String contextID = req.getParameter(GeoportalDataViewerConstants.CONTEXT_ID_PARAMETER);
+ logger.info("doGet called with [projectID: " + projectID + ", ucdID: " + ucdID + ", contextID: " + contextID + "]");
+
+ if(contextID==null || contextID.isEmpty())
+ sendError(resp, "Bad Request. No context found!");
+
+ PortalContext pContext = PortalContext.getConfiguration();
+ GCubeUser gcubeUser = pContext.getCurrentUser(req);
+ String scope = pContext.getCurrentScope(contextID);
+ logger.info("User caller fullname is {}, scope {}", gcubeUser.getFullname(), scope);
+
try {
- String scope = SessionUtil.getCurrentContext(req, true);
- logger.info("the scope is: "+scope);
+ ScopeProvider.instance.set(scope);
GeoportalServiceIdentityProxy identity = new GeoportalServiceIdentityProxy(req);
String theToken = identity.getToken();
String theIdentity = identity.getIdentity();
diff --git a/src/main/resources/org/gcube/portlets/user/geoportaldataviewer/GeoportalDataViewer.gwt.xml b/src/main/resources/org/gcube/portlets/user/geoportaldataviewer/GeoportalDataViewer.gwt.xml
index 1072670..85fba01 100644
--- a/src/main/resources/org/gcube/portlets/user/geoportaldataviewer/GeoportalDataViewer.gwt.xml
+++ b/src/main/resources/org/gcube/portlets/user/geoportaldataviewer/GeoportalDataViewer.gwt.xml
@@ -17,11 +17,14 @@
+
+
-
+