diff --git a/pom.xml b/pom.xml
index a8aaac5..cecbcad 100644
--- a/pom.xml
+++ b/pom.xml
@@ -10,7 +10,7 @@
org.gcube.portlets.user
workspace-tree-widget
- 6.14.0-SNAPSHOT
+ 6.15.0-SNAPSHOT
gCube Workspace Tree Widget
gCube Workspace Tree Widget is a widget to navigate and interact with gCube Workspace
@@ -88,6 +88,14 @@
org.gcube.common.portal
portal-manager
+ provided
+
+
+
+
+ org.gcube.dvos
+ usermanagement-core
+ provided
@@ -114,21 +122,11 @@
provided
-
- org.gcube.portal
- custom-portal-handler
- provided
-
org.gcube.portlets.user
gcube-widgets
provided
-
- org.gcube.applicationsupportlayer
- aslcore
- provided
-
org.gcube.portlets.user
diff --git a/src/main/java/org/gcube/portlets/user/workspace/client/constant/WorkspaceOperation.java b/src/main/java/org/gcube/portlets/user/workspace/client/constant/WorkspaceOperation.java
index 280f924..ed17c81 100644
--- a/src/main/java/org/gcube/portlets/user/workspace/client/constant/WorkspaceOperation.java
+++ b/src/main/java/org/gcube/portlets/user/workspace/client/constant/WorkspaceOperation.java
@@ -17,8 +17,8 @@ public enum WorkspaceOperation {
LINK("LNK", "LNK"),
SHOW("SHW", "SHW"), // SHOW
ADD_URL("CLK", "CLK"), // Add Url
- OPEN_REPORT_TEMPLATE("ORT", "ORT"), // Open report template
- OPEN_REPORT("ORP", "ORP"), // Open report
+// OPEN_REPORT_TEMPLATE("ORT", "ORT"), // Open report template
+// OPEN_REPORT("ORP", "ORP"), // Open report
SENDTO("SDT", "SDT"), // Send to
GET_NEW_MESSAGES("DWM", "DWM"), // Get all new messages
CREATE_NEW_MESSAGE("CNM", "CNM"), // Create new message
diff --git a/src/main/java/org/gcube/portlets/user/workspace/client/view/tree/ContextMenuTree.java b/src/main/java/org/gcube/portlets/user/workspace/client/view/tree/ContextMenuTree.java
index 9172036..0bb0e54 100644
--- a/src/main/java/org/gcube/portlets/user/workspace/client/view/tree/ContextMenuTree.java
+++ b/src/main/java/org/gcube/portlets/user/workspace/client/view/tree/ContextMenuTree.java
@@ -24,7 +24,6 @@ import org.gcube.portlets.user.workspace.client.event.GetInfoEvent;
import org.gcube.portlets.user.workspace.client.event.GetPublicLinkEvent;
import org.gcube.portlets.user.workspace.client.event.GetShareLinkEvent;
import org.gcube.portlets.user.workspace.client.event.ImagePreviewEvent;
-import org.gcube.portlets.user.workspace.client.event.OpenReportsEvent;
import org.gcube.portlets.user.workspace.client.event.OpenUrlEvent;
import org.gcube.portlets.user.workspace.client.event.PasteItemEvent;
import org.gcube.portlets.user.workspace.client.event.PublishOnDataCatalogueEvent;
@@ -127,43 +126,45 @@ public class ContextMenuTree {
contextMenu.add(openUrl);
//Open Report Template
- MenuItem openReportTemplate = new MenuItem();
- openReportTemplate.setId(WorkspaceOperation.OPEN_REPORT_TEMPLATE.getId());
- openReportTemplate.setText(ConstantsExplorer.MESSAGE_OPEN_REPORT_TEMPLATE);
- openReportTemplate.setIcon(Resources.getIconShow());
+ //TODO REMOVE
+// MenuItem openReportTemplate = new MenuItem();
+// openReportTemplate.setId(WorkspaceOperation.OPEN_REPORT_TEMPLATE.getId());
+// openReportTemplate.setText(ConstantsExplorer.MESSAGE_OPEN_REPORT_TEMPLATE);
+// openReportTemplate.setIcon(Resources.getIconShow());
+//
+// openReportTemplate.addSelectionListener(new SelectionListener() {
+// public void componentSelected(MenuEvent ce) {
+//
+// FileModel selected = listSelectedItems.get(0);
+//
+// if(selected!=null){
+// eventBus.fireEvent(new OpenReportsEvent(selected));
+// }
+// }
+// });
- openReportTemplate.addSelectionListener(new SelectionListener() {
- public void componentSelected(MenuEvent ce) {
-
- FileModel selected = listSelectedItems.get(0);
-
- if(selected!=null){
- eventBus.fireEvent(new OpenReportsEvent(selected));
- }
- }
- });
-
- contextMenu.add(openReportTemplate);
+ //contextMenu.add(openReportTemplate);
//Open Report Template
- MenuItem openReport = new MenuItem();
- openReport.setId(WorkspaceOperation.OPEN_REPORT.getId());
- openReport.setText(ConstantsExplorer.MESSAGE_OPEN_REPORT);
- openReport.setIcon(Resources.getIconShow());
+ //TODO REMOVE
+// MenuItem openReport = new MenuItem();
+// openReport.setId(WorkspaceOperation.OPEN_REPORT.getId());
+// openReport.setText(ConstantsExplorer.MESSAGE_OPEN_REPORT);
+// openReport.setIcon(Resources.getIconShow());
+//
+// openReport.addSelectionListener(new SelectionListener() {
+// public void componentSelected(MenuEvent ce) {
+//
+// FileModel selected = listSelectedItems.get(0);
+//
+// if (selected != null){
+// eventBus.fireEvent(new OpenReportsEvent(selected));
+// }
+//
+// }
+// });
- openReport.addSelectionListener(new SelectionListener() {
- public void componentSelected(MenuEvent ce) {
-
- FileModel selected = listSelectedItems.get(0);
-
- if (selected != null){
- eventBus.fireEvent(new OpenReportsEvent(selected));
- }
-
- }
- });
-
- contextMenu.add(openReport);
+ //contextMenu.add(openReport);
contextMenu.add(new SeparatorMenuItem());
//END SPECIFIC OPERATION
@@ -539,7 +540,7 @@ public class ContextMenuTree {
for (final FileModel sel : listSelectedItems) {
- eventBus.fireEvent(new FileDownloadEvent(sel.getIdentifier(), sel.getName(), DownloadType.SHOW, (sel.isDirectory() || sel.isVreFolder())));
+ eventBus.fireEvent(new FileDownloadEvent(sel.getIdentifier(), sel.getName(), DownloadType.SHOW, sel.isDirectory() || sel.isVreFolder()));
}
}
});
@@ -637,7 +638,7 @@ public class ContextMenuTree {
public void componentSelected(MenuEvent ce) {
for (FileModel sel : listSelectedItems) {
- eventBus.fireEvent(new FileDownloadEvent(sel.getIdentifier(), sel.getName(), DownloadType.DOWNLOAD, (sel.isDirectory() || sel.isVreFolder())));
+ eventBus.fireEvent(new FileDownloadEvent(sel.getIdentifier(), sel.getName(), DownloadType.DOWNLOAD, sel.isDirectory() || sel.isVreFolder()));
}
}
});
@@ -821,8 +822,8 @@ public class ContextMenuTree {
contextMenu.getItemByItemId(WorkspaceOperation.PREVIEW.getId()).setVisible(false); //preview image
contextMenu.getItemByItemId(WorkspaceOperation.LINK.getId()).setVisible(false); //open link
contextMenu.getItemByItemId(WorkspaceOperation.SHOW.getId()).setVisible(false); //show
- contextMenu.getItemByItemId(WorkspaceOperation.OPEN_REPORT.getId()).setVisible(false); //open report
- contextMenu.getItemByItemId(WorkspaceOperation.OPEN_REPORT_TEMPLATE.getId()).setVisible(false); //open report template
+ //contextMenu.getItemByItemId(WorkspaceOperation.OPEN_REPORT.getId()).setVisible(false); //open report
+ //contextMenu.getItemByItemId(WorkspaceOperation.OPEN_REPORT_TEMPLATE.getId()).setVisible(false); //open report template
contextMenu.getItemByItemId(WorkspaceOperation.PASTE.getId()).setEnabled(false); //paste
contextMenu.getItemByItemId(WorkspaceOperation.REFRESH_FOLDER.getId()).setVisible(false); //refresh
contextMenu.getItemByItemId(WorkspaceOperation.PUBLIC_LINK.getId()).setVisible(false); //public link
@@ -933,10 +934,10 @@ public class ContextMenuTree {
contextMenu.getItemByItemId(WorkspaceOperation.LINK.getId()).setVisible(true);
break;
case REPORT_TEMPLATE:
- contextMenu.getItemByItemId(WorkspaceOperation.OPEN_REPORT_TEMPLATE.getId()).setVisible(true);
+ //contextMenu.getItemByItemId(WorkspaceOperation.OPEN_REPORT_TEMPLATE.getId()).setVisible(true);
break;
case REPORT:
- contextMenu.getItemByItemId(WorkspaceOperation.OPEN_REPORT.getId()).setVisible(true);
+ //contextMenu.getItemByItemId(WorkspaceOperation.OPEN_REPORT.getId()).setVisible(true);
break;
case QUERY:
break;
diff --git a/src/main/java/org/gcube/portlets/user/workspace/server/DownloadFolderServlet.java b/src/main/java/org/gcube/portlets/user/workspace/server/DownloadFolderServlet.java
index 8a93d6a..5611460 100644
--- a/src/main/java/org/gcube/portlets/user/workspace/server/DownloadFolderServlet.java
+++ b/src/main/java/org/gcube/portlets/user/workspace/server/DownloadFolderServlet.java
@@ -13,7 +13,6 @@ import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
-import javax.servlet.http.HttpSession;
import org.apache.commons.io.IOUtils;
import org.apache.log4j.Logger;
@@ -43,10 +42,9 @@ public class DownloadFolderServlet extends HttpServlet{
public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException {
boolean urlRedirectOnError = req.getParameter(ConstantsExplorer.REDIRECTONERROR)==null?false:req.getParameter(ConstantsExplorer.REDIRECTONERROR).equals("true");
-
+
try {
- HttpSession session = req.getSession();
- if(WsUtil.isSessionExpired(session))
+ if(WsUtil.isSessionExpired(req))
throw new SessionExpiredException();
} catch (Exception e) {
@@ -55,7 +53,7 @@ public class DownloadFolderServlet extends HttpServlet{
return;
}
}
-
+
String fileRelativePath = req.getParameter("filepath");
String tmpDir = System.getProperty("java.io.tmpdir");
String pathToFile = tmpDir + File.separator + fileRelativePath;
@@ -63,7 +61,7 @@ public class DownloadFolderServlet extends HttpServlet{
logger.debug("looking for File in " + pathToFile);
File tmpZip = new File(pathToFile);
logger.debug("File instanciated " + pathToFile);
-
+
resp.setHeader( "Content-Disposition", "attachment; filename=\"" + tmpZip.getName() + ".zip\"" );
resp.setContentType("application/zip");
resp = setContentLength(resp, tmpZip.length());
diff --git a/src/main/java/org/gcube/portlets/user/workspace/server/DownloadServlet.java b/src/main/java/org/gcube/portlets/user/workspace/server/DownloadServlet.java
index f25e658..908347a 100644
--- a/src/main/java/org/gcube/portlets/user/workspace/server/DownloadServlet.java
+++ b/src/main/java/org/gcube/portlets/user/workspace/server/DownloadServlet.java
@@ -14,7 +14,6 @@ import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
-import javax.servlet.http.HttpSession;
import org.apache.commons.io.FilenameUtils;
import org.apache.commons.io.IOUtils;
@@ -78,11 +77,10 @@ public class DownloadServlet extends HttpServlet{
Workspace wa = null;
try {
//ADDED 13-01-2014 SESSION VALIDATION
- HttpSession session = req.getSession();
- if(WsUtil.isSessionExpired(session))
+ if(WsUtil.isSessionExpired(req))
throw new SessionExpiredException();
- wa = WsUtil.getWorkspace(session);
+ wa = WsUtil.getWorkspace(req);
} catch (Exception e) {
if (e instanceof SessionExpiredException){
diff --git a/src/main/java/org/gcube/portlets/user/workspace/server/GWTWorkspaceServiceImpl.java b/src/main/java/org/gcube/portlets/user/workspace/server/GWTWorkspaceServiceImpl.java
index 5c4b756..e0ad111 100644
--- a/src/main/java/org/gcube/portlets/user/workspace/server/GWTWorkspaceServiceImpl.java
+++ b/src/main/java/org/gcube/portlets/user/workspace/server/GWTWorkspaceServiceImpl.java
@@ -16,7 +16,6 @@ import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import org.apache.log4j.Logger;
-import org.gcube.application.framework.core.session.ASLSession;
import org.gcube.common.encryption.StringEncrypter;
import org.gcube.common.homelibary.model.items.type.FolderItemType;
import org.gcube.common.homelibary.model.items.type.WorkspaceItemType;
@@ -70,6 +69,7 @@ import org.gcube.portlets.user.workspace.server.reader.ApplicationProfileReader;
import org.gcube.portlets.user.workspace.server.resolver.UriResolverReaderParameterForResolverIndex;
import org.gcube.portlets.user.workspace.server.util.AclTypeComparator;
import org.gcube.portlets.user.workspace.server.util.DifferenceBetweenInfoContactModel;
+import org.gcube.portlets.user.workspace.server.util.PortalContextInfo;
import org.gcube.portlets.user.workspace.server.util.StringUtil;
import org.gcube.portlets.user.workspace.server.util.UserUtil;
import org.gcube.portlets.user.workspace.server.util.WsUtil;
@@ -126,7 +126,7 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT
*/
protected GWTWorkspaceBuilder getGWTWorkspaceBuilder()
{
- return WsUtil.getGWTWorkspaceBuilder(this.getThreadLocalRequest().getSession());
+ return WsUtil.getGWTWorkspaceBuilder(this.getThreadLocalRequest());
}
/**
@@ -139,7 +139,7 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT
*/
protected Workspace getWorkspace() throws InternalErrorException, HomeNotFoundException, WorkspaceFolderNotFoundException
{
- return WsUtil.getWorkspace(this.getThreadLocalRequest().getSession());
+ return WsUtil.getWorkspace(this.getThreadLocalRequest());
}
/**
@@ -149,7 +149,7 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT
*/
protected NotificationsProducer getNotificationProducer(){
- return WsUtil.getNotificationProducer(WsUtil.getAslSession(this.getThreadLocalRequest().getSession()), this.getThreadLocalRequest());
+ return WsUtil.getNotificationProducer(this.getThreadLocalRequest());
}
/**
@@ -159,7 +159,7 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT
*/
protected ScopeUtilFilter getScopeUtilFilter(){
- return WsUtil.getScopeUtilFilter(this.getThreadLocalRequest().getSession());
+ return WsUtil.getScopeUtilFilter(this.getThreadLocalRequest());
}
/**
@@ -177,7 +177,7 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT
* @return the url shortener
*/
protected UrlShortener getUrlShortener() {
- return WsUtil.getUrlShortener(this.getThreadLocalRequest().getSession());
+ return WsUtil.getUrlShortener(this.getThreadLocalRequest());
}
/**
@@ -186,7 +186,7 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT
* @return the uri resolver
*/
protected UriResolverReaderParameterForResolverIndex getUriResolver() {
- return WsUtil.getUriResolver(this.getThreadLocalRequest().getSession());
+ return WsUtil.getUriResolver(this.getThreadLocalRequest());
}
/**
@@ -196,7 +196,7 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT
*/
protected PropertySpecialFolderReader getPropertySpecialFolderReader() {
String absolutePathProperty = getSpecialFolderPath();
- return WsUtil.getPropertySpecialFolderReader(this.getThreadLocalRequest().getSession(),absolutePathProperty);
+ return WsUtil.getPropertySpecialFolderReader(this.getThreadLocalRequest(),absolutePathProperty);
}
/**
@@ -878,7 +878,7 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT
workspace.removeItem(itemId);
//IF SOURCE SHARED FOLDER IS NOT NULL
if(sourceFolderSharedId!=null)
- NotificationsUtil.checkSendNotifyRemoveItemToShare(this.getThreadLocalRequest(), this.getThreadLocalRequest().getSession(), sourceItemIsShared, itemName, itemId, sourceFolderSharedId);
+ NotificationsUtil.checkSendNotifyRemoveItemToShare(this.getThreadLocalRequest(), sourceItemIsShared, itemName, itemId, sourceFolderSharedId);
return Boolean.TRUE;
@@ -1361,15 +1361,6 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT
throw new Exception("Parent item is null");
workspaceLogger.trace("create url in parent id: "+parentFileModel.getIdentifier());
-
- //DEBUG
- // workspaceLogger.trace("Name " + name);
- // workspaceLogger.trace("description " + description);
- // workspaceLogger.trace("url " + url);
- // workspaceLogger.trace("parentFileModel " + parentFileModel.getIdentifier() + " " + parentFileModel.getName());
- // if(description == null)
- // description = "";
-
ExternalUrl ext = workspace.createExternalUrl(name, description, url, parentFileModel.getIdentifier());
WorkspaceItem parent = workspace.getItem(parentFileModel.getIdentifier()); //get item from workspace
workspaceLogger.trace("parent name " + parent.getName());
@@ -1399,13 +1390,13 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT
if(oid==null)
throw new Exception(IDENTIFIER_IS_NULL);
- ASLSession session = WsUtil.getAslSession(this.getThreadLocalRequest().getSession());
+ PortalContextInfo info = WsUtil.getPortalContext(this.getThreadLocalRequest());
- if(WsUtil.isVRE(session)){
+ if(WsUtil.isVRE(info.getCurrentScope())){
- ScopeProvider.instance.set(session.getScope());
+ ScopeProvider.instance.set(info.getCurrentScope());
// GET WORKSPACE
- Workspace workspace = HomeLibrary.getUserWorkspace(session.getUsername());
+ Workspace workspace = HomeLibrary.getUserWorkspace(info.getUsername());
// GET ITEM FROM WORKSPACE
WorkspaceItem item = workspace.getItem(oid);
@@ -1422,8 +1413,10 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT
return "";
}
}
- else
- urlPortlet = app.getURLFromApplicationProfile(oid, WsUtil.getAslSession(this.getThreadLocalRequest().getSession()),this.getThreadLocalRequest().getSession());
+ else{
+ //TODO DISMISSED
+ //urlPortlet = app.getURLFromApplicationProfile(oid, WsUtil.getPortalContext(this.getThreadLocalRequest().getSession()),this.getThreadLocalRequest().getSession());
+ }
} catch (Exception e) {
workspaceLogger.error("getURLFromApplicationProfile", e);
@@ -1440,9 +1433,7 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT
public void setValueInSession(String name, String value) throws Exception {
try{
-
- ASLSession session = WsUtil.getAslSession(this.getThreadLocalRequest().getSession());
- session.setAttribute(name, value);
+ this.getThreadLocalRequest().getSession().setAttribute(name, value);
workspaceLogger.trace("set value in session with name: "+name+", value: "+value);
} catch (Exception e) {
workspaceLogger.error("setValueInSession", e);
@@ -2403,7 +2394,7 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT
*/
@Override
public boolean isSessionExpired() throws Exception {
- return WsUtil.isSessionExpired(this.getThreadLocalRequest().getSession());
+ return WsUtil.isSessionExpired(this.getThreadLocalRequest());
}
/* (non-Javadoc)
@@ -2466,7 +2457,7 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT
workspaceLogger.trace("Check notification for "+item);
//IF SOURCE SHARED FOLDER IS NOT NULL
if(item.getSourceFolderSharedId()!=null)
- NotificationsUtil.checkSendNotifyRemoveItemToShare(this.getThreadLocalRequest(), this.getThreadLocalRequest().getSession(), item.isSourceItemIsShared(), item.getOldItemName(), item.getOldItemName(), item.getSourceFolderSharedId());
+ NotificationsUtil.checkSendNotifyRemoveItemToShare(this.getThreadLocalRequest(), item.isSourceItemIsShared(), item.getOldItemName(), item.getOldItemName(), item.getSourceFolderSharedId());
}
return frontEndError;
@@ -2684,9 +2675,9 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT
*/
@Override
public UserBean getMyLogin(String currentPortletUrl){
- ASLSession asl = WsUtil.getAslSession(this.getThreadLocalRequest().getSession());
- String username = asl.getUsername();
- String email = username+"@isti.cnr.it";
+ PortalContextInfo info = WsUtil.getPortalContext(this.getThreadLocalRequest());
+ String username = info.getUsername();
+ String email = info.getUserEmail();
String firstName = "Testing";
String lastName = "User";
boolean publishRights = false;
@@ -2724,8 +2715,8 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT
*/
@Override
public String getMyFirstName(){
- ASLSession asl = WsUtil.getAslSession(this.getThreadLocalRequest().getSession());
- String username = asl.getUsername();
+ PortalContextInfo info = WsUtil.getPortalContext(this.getThreadLocalRequest());
+ String username = info.getUsername();
String firstName = "";
if (isWithinPortal() && username.compareTo(WsUtil.TEST_USER) != 0) {
try {
@@ -3463,11 +3454,10 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT
* @return the ckan utils obj
*/
public DataCatalogue getCatalogue(String scope){
- HttpSession httpSession = this.getThreadLocalRequest().getSession();
- ASLSession asl = WsUtil.getAslSession(httpSession);
+ PortalContextInfo info = WsUtil.getPortalContext(this.getThreadLocalRequest());
DataCatalogue instance = null;
try{
- String scopeInWhichDiscover = scope != null && !scope.isEmpty() ? scope : asl.getScope();
+ String scopeInWhichDiscover = scope != null && !scope.isEmpty() ? scope : info.getCurrentScope();
workspaceLogger.debug("Discovering ckan instance into scope " + scopeInWhichDiscover);
instance = DataCatalogueFactory.getFactory().getUtilsPerScope(scopeInWhichDiscover);
}catch(Exception e){
@@ -3484,9 +3474,9 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT
*/
private boolean enablePublishOnCatalogue(String currentPortletUrl) {
+ PortalContextInfo info = WsUtil.getPortalContext(this.getThreadLocalRequest());
+ String username = info.getUsername();
HttpSession httpSession = this.getThreadLocalRequest().getSession();
- ASLSession asl = WsUtil.getAslSession(httpSession);
- String username = asl.getUsername();
if(!isWithinPortal()){
workspaceLogger.warn("OUT FROM PORTAL DETECTED RETURNING TRUE");
@@ -3509,7 +3499,7 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT
// check if this information was already into the ASL Session (true means the user has at least in one org
// the role editor), false that he is just a member so he cannot publish
- Boolean role = (Boolean)httpSession.getAttribute(keyPerScopeRole);
+ Boolean role = (Boolean) httpSession.getAttribute(keyPerScopeRole);
// if the attribute was already set..
if(role != null)
@@ -3546,10 +3536,10 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT
// return false
return role;
}
-
+
/**
* Fetch the list of ckan groups for which the user is member
- * @param context
+ * @param context
* @return
*/
private List fetchUserGroups(String context, String username) {
diff --git a/src/main/java/org/gcube/portlets/user/workspace/server/ImageServlet.java b/src/main/java/org/gcube/portlets/user/workspace/server/ImageServlet.java
index d4815f6..a0408f0 100644
--- a/src/main/java/org/gcube/portlets/user/workspace/server/ImageServlet.java
+++ b/src/main/java/org/gcube/portlets/user/workspace/server/ImageServlet.java
@@ -1,5 +1,5 @@
/**
- *
+ *
*/
package org.gcube.portlets.user.workspace.server;
@@ -25,16 +25,19 @@ import org.gcube.common.homelibrary.home.workspace.folder.items.Image;
import org.gcube.portlets.user.workspace.client.util.ImageRequestType;
import org.gcube.portlets.user.workspace.server.util.WsUtil;
+
/**
- * @author Federico De Faveri defaveri@isti.cnr.it
+ * The Class ImageServlet.
*
+ * @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
+ * Nov 25, 2016
*/
public class ImageServlet extends HttpServlet{
private static final long serialVersionUID = -8423345575690165644L;
protected static Logger logger = Logger.getLogger(ImageServlet.class);
-
+
/**
* {@inheritDoc}
@@ -47,6 +50,9 @@ public class ImageServlet extends HttpServlet{
}
+ /* (non-Javadoc)
+ * @see javax.servlet.http.HttpServlet#doGet(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
+ */
public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException {
String imageId = req.getParameter("id");
@@ -64,7 +70,7 @@ public class ImageServlet extends HttpServlet{
Workspace wa = null;
try {
- wa = WsUtil.getWorkspace(req.getSession());
+ wa = WsUtil.getWorkspace(req);
} catch (Exception e) {
logger.error("Error during workspace retrieving", e);
resp.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR,"Error during workspace retrieving");
@@ -95,7 +101,7 @@ public class ImageServlet extends HttpServlet{
FolderItem folderItem = (FolderItem) item;
FolderItemType itemType = folderItem.getFolderItemType();
- if (itemType != FolderItemType.EXTERNAL_IMAGE
+ if (itemType != FolderItemType.EXTERNAL_IMAGE
&& itemType != FolderItemType.IMAGE_DOCUMENT) {
logger.error("Error wrong folder item type, expected EXTERNAL_IMAGE or IMAGE_DOCUMENT, found "+itemType);
resp.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, "Error wrong folder item type, expected EXTERNAL_IMAGE or IMAGE_DOCUMENT, found "+itemType);
@@ -117,7 +123,7 @@ public class ImageServlet extends HttpServlet{
long size = (requestType==ImageRequestType.IMAGE)?image.getLength():image.getThumbnailLength();
resp.setContentLength((int)size);
*/
- long size = (requestType==ImageRequestType.IMAGE)?image.getLength():0;
+ long size = requestType==ImageRequestType.IMAGE?image.getLength():0;
if(size == 0){
logger.warn("Image or Thumbnail size is 0, skipping set content lenght");
}else
@@ -130,7 +136,7 @@ public class ImageServlet extends HttpServlet{
// Send the content
try {
OutputStream out = resp.getOutputStream();
- InputStream in = (requestType==ImageRequestType.IMAGE)?image.getData():image.getThumbnail();
+ InputStream in = requestType==ImageRequestType.IMAGE?image.getData():image.getThumbnail();
IOUtils.copy(in, out);
in.close();
out.close();
diff --git a/src/main/java/org/gcube/portlets/user/workspace/server/notifications/NotificationsProducer.java b/src/main/java/org/gcube/portlets/user/workspace/server/notifications/NotificationsProducer.java
index 99c6d53..76c419a 100644
--- a/src/main/java/org/gcube/portlets/user/workspace/server/notifications/NotificationsProducer.java
+++ b/src/main/java/org/gcube/portlets/user/workspace/server/notifications/NotificationsProducer.java
@@ -7,9 +7,9 @@ import java.util.ArrayList;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpSession;
import org.apache.log4j.Logger;
-import org.gcube.application.framework.core.session.ASLSession;
import org.gcube.applicationsupportlayer.social.NotificationsManager;
import org.gcube.common.homelibrary.home.exceptions.InternalErrorException;
import org.gcube.common.homelibrary.home.workspace.WorkspaceItem;
@@ -17,6 +17,7 @@ import org.gcube.common.homelibrary.home.workspace.WorkspaceSharedFolder;
import org.gcube.common.scope.impl.ScopeBean;
import org.gcube.portlets.user.workspace.client.model.InfoContactModel;
import org.gcube.portlets.user.workspace.server.util.DifferenceBetweenInfoContactModel;
+import org.gcube.portlets.user.workspace.server.util.PortalContextInfo;
import org.gcube.portlets.user.workspace.server.util.UserUtil;
import org.gcube.portlets.user.workspace.server.util.WsUtil;
@@ -32,20 +33,19 @@ public class NotificationsProducer {
protected static Logger logger = Logger.getLogger(NotificationsProducer.class);
protected NotificationsManager notificationsMng;
- protected ASLSession aslSession;
+ protected HttpSession httpSession;
protected String userId;
/**
* Instantiates a new notifications producer.
*
- * @param aslSession the asl session
- * @param request the request
+ * @param httpServletRequest the http servlet request
*/
- public NotificationsProducer(ASLSession aslSession, HttpServletRequest request) {
- this.notificationsMng = WsUtil.getNotificationManager(aslSession, request);
- this.aslSession = aslSession;
- this.userId = aslSession.getUsername();
+ public NotificationsProducer(HttpServletRequest httpServletRequest) {
+ PortalContextInfo info = WsUtil.getPortalContext(httpServletRequest);
+ this.notificationsMng = WsUtil.getNotificationManager(httpServletRequest);
+ this.userId = info.getUsername();
}
/**
@@ -66,16 +66,6 @@ public class NotificationsProducer {
this.notificationsMng = notificationMng;
}
- /**
- * Gets the asl session.
- *
- * @return the asl session
- */
- public ASLSession getAslSession() {
- return aslSession;
- }
-
-
/**
* Runs a new thread to notify the contacts passed in input.
*
@@ -823,7 +813,6 @@ public class NotificationsProducer {
String fullName = "Francesco Mangiacrapa";
ScopeBean scope;
- ASLSession session;
session = SessionManager.getInstance().getASLSession(sessionID, user);
scope = new ScopeBean(scopeString);
diff --git a/src/main/java/org/gcube/portlets/user/workspace/server/notifications/NotificationsUtil.java b/src/main/java/org/gcube/portlets/user/workspace/server/notifications/NotificationsUtil.java
index 8a1c0db..a73bdb0 100644
--- a/src/main/java/org/gcube/portlets/user/workspace/server/notifications/NotificationsUtil.java
+++ b/src/main/java/org/gcube/portlets/user/workspace/server/notifications/NotificationsUtil.java
@@ -19,9 +19,10 @@ import org.gcube.portlets.user.workspace.server.GWTWorkspaceBuilder;
import org.gcube.portlets.user.workspace.server.util.WsUtil;
/**
+ * The Class NotificationsUtil.
+ *
* @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
* @May 27, 2013
- *
*/
public class NotificationsUtil {
@@ -56,10 +57,10 @@ public class NotificationsUtil {
//if shareChangeCondition is true.. notifies added item to sharing
if(shareChangeCondition){
- Workspace workspace = WsUtil.getWorkspace(httpSession);
+ Workspace workspace = WsUtil.getWorkspace(request);
List listContacts = getListUsersSharedByFolderSharedId(workspace, folderDestinationItem.getIdSharedFolder());
WorkspaceItem destinationSharedFolder = workspace.getItem(folderDestinationItem.getIdSharedFolder());
- NotificationsProducer np = new NotificationsProducer(WsUtil.getAslSession(httpSession), request);
+ NotificationsProducer np = new NotificationsProducer(request);
if(destinationSharedFolder instanceof WorkspaceSharedFolder){
@@ -87,11 +88,12 @@ public class NotificationsUtil {
/**
+ * Gets the list users shared by folder shared id.
*
- * @param workspace
- * @param idSharedFolder
- * @return
- * @throws Exception
+ * @param workspace the workspace
+ * @param idSharedFolder the id shared folder
+ * @return the list users shared by folder shared id
+ * @throws Exception the exception
*/
public static List getListUsersSharedByFolderSharedId(Workspace workspace, String idSharedFolder) throws Exception {
@@ -123,17 +125,17 @@ public class NotificationsUtil {
}
}
+
/**
* Check send notify remove item to share.
*
* @param request the request
- * @param httpSession the http session
* @param sourceItemIsShared the source item is shared
* @param oldItemName the old item name
* @param oldItemId the old item id
* @param sourceFolderSharedId the source folder shared id
*/
- public static void checkSendNotifyRemoveItemToShare(HttpServletRequest request, HttpSession httpSession, final boolean sourceItemIsShared, final String oldItemName, String oldItemId, final String sourceFolderSharedId) {
+ public static void checkSendNotifyRemoveItemToShare(HttpServletRequest request, final boolean sourceItemIsShared, final String oldItemName, String oldItemId, final String sourceFolderSharedId) {
logger.trace("checkNotifyRemoveItemToShare:");
@@ -152,16 +154,16 @@ public class NotificationsUtil {
logger.trace("Notification doesn't sent because the event is on root shared folder");
return;
}*/
- boolean isSharedFolder = isASharedFolderForId(httpSession,idSharedFolder);
+ boolean isSharedFolder = isASharedFolderForId(request,idSharedFolder);
if(isSharedFolder){
logger.trace("idSharedFolder is: "+ idSharedFolder +" is shared folder: "+isSharedFolder);
- Workspace workspace = WsUtil.getWorkspace(httpSession);
+ Workspace workspace = WsUtil.getWorkspace(request);
//get contacts
List listContacts = getListUsersSharedByFolderSharedId(workspace, idSharedFolder);
WorkspaceItem sourceSharedFolder = workspace.getItem(idSharedFolder);
//System.out.println(" name sourceSharedFolder: "+ sourceSharedFolder.getName());
- NotificationsProducer np = new NotificationsProducer(WsUtil.getAslSession(httpSession), request);
+ NotificationsProducer np = new NotificationsProducer(request);
//Notify Removed Item To Sharing?
if(!isRootFolderShared){
@@ -185,9 +187,10 @@ public class NotificationsUtil {
}
/**
+ * Checks if is a shared folder.
*
- * @param wsItem
- * @return
+ * @param wsItem the ws item
+ * @return true, if is a shared folder
*/
public static boolean isASharedFolder(WorkspaceItem wsItem){
if(wsItem!=null)
@@ -195,19 +198,22 @@ public class NotificationsUtil {
return false;
}
+
/**
+ * Checks if is a shared folder for id.
*
- * @param wsItem
- * @return
+ * @param request the request
+ * @param itemId the item id
+ * @return true, if is a shared folder for id
*/
- public static boolean isASharedFolderForId(HttpSession httpSession, String itemId){
+ public static boolean isASharedFolderForId(HttpServletRequest request, String itemId){
if(itemId==null || itemId.isEmpty())
return false;
try {
- Workspace workspace = WsUtil.getWorkspace(httpSession);
+ Workspace workspace = WsUtil.getWorkspace(request);
WorkspaceItem wsItem = workspace.getItem(itemId);
@@ -223,10 +229,11 @@ public class NotificationsUtil {
/**
+ * Check is root folder shared.
*
- * @param itemId
- * @param rootFolderSharedId
- * @return
+ * @param itemId the item id
+ * @param rootFolderSharedId the root folder shared id
+ * @return true, if successful
*/
public static boolean checkIsRootFolderShared(String itemId, String rootFolderSharedId) {
diff --git a/src/main/java/org/gcube/portlets/user/workspace/server/util/PortalContextInfo.java b/src/main/java/org/gcube/portlets/user/workspace/server/util/PortalContextInfo.java
new file mode 100644
index 0000000..bd3c054
--- /dev/null
+++ b/src/main/java/org/gcube/portlets/user/workspace/server/util/PortalContextInfo.java
@@ -0,0 +1,244 @@
+/**
+ *
+ */
+package org.gcube.portlets.user.workspace.server.util;
+
+import java.io.Serializable;
+
+
+/**
+ * The Class PortalContextInfo.
+ *
+ * @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
+ * Nov 25, 2016
+ */
+public class PortalContextInfo implements Serializable{
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 5003662885627052222L;
+ private String username;
+ private String userFullName;
+ private String userEmail;
+ private String userAvatarID;
+ private String userAvatarURL;
+ private String currentScope;
+ private String userToken;
+ private long currGroupId;
+
+
+ /**
+ * Instantiates a new portal context info.
+ *
+ * @param username the username
+ * @param userFullName the user full name
+ * @param userEmail the user email
+ * @param userAvatarID the user avatar id
+ * @param userAvatarURL the user avatar url
+ * @param currentScope the current scope
+ * @param userToken the user token
+ * @param currGroupId the curr group id
+ */
+ public PortalContextInfo(String username, String userFullName, String userEmail, String userAvatarID, String userAvatarURL, String currentScope, String userToken, long currGroupId) {
+ this.username = username;
+ this.userFullName = userFullName;
+ this.userEmail = userEmail;
+ this.userAvatarID = userAvatarID;
+ this.userAvatarURL = userAvatarURL;
+ this.currentScope = currentScope;
+ this.userToken = userToken;
+ this.currGroupId = currGroupId;
+
+ }
+
+
+
+ /**
+ * @return the username
+ */
+ public String getUsername() {
+
+ return username;
+ }
+
+
+
+ /**
+ * @return the userFullName
+ */
+ public String getUserFullName() {
+
+ return userFullName;
+ }
+
+
+
+ /**
+ * @return the userEmail
+ */
+ public String getUserEmail() {
+
+ return userEmail;
+ }
+
+
+
+ /**
+ * @return the userAvatarID
+ */
+ public String getUserAvatarID() {
+
+ return userAvatarID;
+ }
+
+
+
+ /**
+ * @return the userAvatarURL
+ */
+ public String getUserAvatarURL() {
+
+ return userAvatarURL;
+ }
+
+
+
+ /**
+ * @return the currentScope
+ */
+ public String getCurrentScope() {
+
+ return currentScope;
+ }
+
+
+
+ /**
+ * @return the userToken
+ */
+ public String getUserToken() {
+
+ return userToken;
+ }
+
+
+
+ /**
+ * @return the currGroupId
+ */
+ public long getCurrGroupId() {
+
+ return currGroupId;
+ }
+
+
+
+ /**
+ * @param username the username to set
+ */
+ public void setUsername(String username) {
+
+ this.username = username;
+ }
+
+
+
+ /**
+ * @param userFullName the userFullName to set
+ */
+ public void setUserFullName(String userFullName) {
+
+ this.userFullName = userFullName;
+ }
+
+
+
+ /**
+ * @param userEmail the userEmail to set
+ */
+ public void setUserEmail(String userEmail) {
+
+ this.userEmail = userEmail;
+ }
+
+
+
+ /**
+ * @param userAvatarID the userAvatarID to set
+ */
+ public void setUserAvatarID(String userAvatarID) {
+
+ this.userAvatarID = userAvatarID;
+ }
+
+
+
+ /**
+ * @param userAvatarURL the userAvatarURL to set
+ */
+ public void setUserAvatarURL(String userAvatarURL) {
+
+ this.userAvatarURL = userAvatarURL;
+ }
+
+
+
+ /**
+ * @param currentScope the currentScope to set
+ */
+ public void setCurrentScope(String currentScope) {
+
+ this.currentScope = currentScope;
+ }
+
+
+
+ /**
+ * @param userToken the userToken to set
+ */
+ public void setUserToken(String userToken) {
+
+ this.userToken = userToken;
+ }
+
+
+
+ /**
+ * @param currGroupId the currGroupId to set
+ */
+ public void setCurrGroupId(long currGroupId) {
+
+ this.currGroupId = currGroupId;
+ }
+
+
+
+ /* (non-Javadoc)
+ * @see java.lang.Object#toString()
+ */
+ @Override
+ public String toString() {
+
+ StringBuilder builder = new StringBuilder();
+ builder.append("PortalContextInfo [username=");
+ builder.append(username);
+ builder.append(", userFullName=");
+ builder.append(userFullName);
+ builder.append(", userEmail=");
+ builder.append(userEmail);
+ builder.append(", userAvatarID=");
+ builder.append(userAvatarID);
+ builder.append(", userAvatarURL=");
+ builder.append(userAvatarURL);
+ builder.append(", currentScope=");
+ builder.append(currentScope);
+ builder.append(", userToken=");
+ builder.append(userToken);
+ builder.append(", currGroupId=");
+ builder.append(currGroupId);
+ builder.append("]");
+ return builder.toString();
+ }
+
+}
diff --git a/src/main/java/org/gcube/portlets/user/workspace/server/util/WsUtil.java b/src/main/java/org/gcube/portlets/user/workspace/server/util/WsUtil.java
index 2f45e89..5af10b4 100644
--- a/src/main/java/org/gcube/portlets/user/workspace/server/util/WsUtil.java
+++ b/src/main/java/org/gcube/portlets/user/workspace/server/util/WsUtil.java
@@ -8,8 +8,6 @@ import javax.servlet.http.HttpSession;
import org.apache.commons.lang.StringUtils;
import org.apache.log4j.Logger;
-import org.gcube.application.framework.core.session.ASLSession;
-import org.gcube.application.framework.core.session.SessionManager;
import org.gcube.applicationsupportlayer.social.ApplicationNotificationsManager;
import org.gcube.applicationsupportlayer.social.NotificationsManager;
import org.gcube.applicationsupportlayer.social.shared.SocialNetworkingSite;
@@ -19,8 +17,8 @@ import org.gcube.common.homelibrary.home.exceptions.HomeNotFoundException;
import org.gcube.common.homelibrary.home.exceptions.InternalErrorException;
import org.gcube.common.homelibrary.home.workspace.Workspace;
import org.gcube.common.homelibrary.home.workspace.exceptions.WorkspaceFolderNotFoundException;
+import org.gcube.common.portal.PortalContext;
import org.gcube.common.scope.api.ScopeProvider;
-import org.gcube.portal.custom.scopemanager.scopehelper.ScopeHelper;
import org.gcube.portlets.user.urlshortener.UrlShortener;
import org.gcube.portlets.user.workspace.client.model.InfoContactModel;
import org.gcube.portlets.user.workspace.server.GWTWorkspaceBuilder;
@@ -29,6 +27,7 @@ import org.gcube.portlets.user.workspace.server.resolver.UriResolverReaderParame
import org.gcube.portlets.user.workspace.server.resolver.UriResolverReaderParameterForResolverIndex.RESOLVER_TYPE;
import org.gcube.portlets.user.workspace.server.util.resource.PropertySpecialFolderReader;
import org.gcube.portlets.user.workspace.server.util.scope.ScopeUtilFilter;
+import org.gcube.vomanagement.usermanagement.model.GCubeUser;
import com.liferay.portal.service.UserLocalServiceUtil;
@@ -37,11 +36,10 @@ import com.liferay.portal.service.UserLocalServiceUtil;
* The Class WsUtil.
*
* @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
- * @Feb 18, 2014
+ * Nov 25, 2016
*/
public class WsUtil {
- public static final String USERNAME_ATTRIBUTE = ScopeHelper.USERNAME_ATTRIBUTE;
public static final String FOLDERIMPORTER_ATTRIBUTE = "FOLDER_IMPORTER";
public static final String METADATACONVERTER_ATTRIBUTE = "METADATA_CONVERTER";
public static final String WORKSPACE_EVENT_COLLECTOR_ATTRIBUTE = "EVENT_COLLECTOR";
@@ -55,20 +53,11 @@ public class WsUtil {
public static final String PROPERTY_SPECIAL_FOLDER = "PROPERTY_SPECIAL_FOLDER";
public static final String NOTIFICATION_PORTLET_CLASS_ID = "org.gcube.portlets.user.workspace.server.GWTWorkspaceServiceImpl"; //IN DEV
+// public static final String TEST_SCOPE = "/d4science.research-infrastructures.eu";
+// public static final String TEST_TOKEN = "57b42a99-6239-44c4-9a68-591c18363222-843339462"; //username Francesco Mangiacrapa scope: BiodiversityLab
public static final String TEST_SCOPE = "/gcube";
public static final String TEST_TOKEN = "89257623-0570-4fbe-a15b-458bb84f4902-98187548"; //username Francesco Mangiacrapa scope: NextNext
-// public static final String TEST_USER = "pasquale.pagano";
-// public static final String TEST_USER = "federico.defaveri";
-// public static final String TEST_USER = "massimiliano.assante";
-// public static final String TEST_USER = "pasquale.pagano";
-// public static final String TEST_USER = "aureliano.gentile";
-// public static final String TEST_USER = "antonio.gioia";
-
- //COMMENT THIS FOR RELEASE
-// public static final String TEST_USER = "francesco.mangiacrapa";
-// public static final String TEST_USER_FULL_NAME = "Francesco Mangiacrapa";
-
//UNCOMMENT THIS FOR RELEASE
public static String TEST_USER = "test.user";
public static String TEST_USER_FULL_NAME = "Test User";
@@ -94,103 +83,64 @@ public class WsUtil {
}
}
+
/**
- * Gets the asl session.
+ * Gets the portal context.
*
- * @param httpSession the http session
- * @return the asl session
+ * @param httpServletRequest the http servlet request
+ * @return the portal context
*/
- public static ASLSession getAslSession(HttpSession httpSession)
- {
- String sessionID = httpSession.getId();
- String user = (String) httpSession.getAttribute(USERNAME_ATTRIBUTE);
- ASLSession session;
+ public static PortalContextInfo getPortalContext(HttpServletRequest httpServletRequest){
+ PortalContext pContext = PortalContext.getConfiguration();
+ //USER
+ GCubeUser user = pContext.getCurrentUser(httpServletRequest);
+ String username = user.getUsername();
+ String fullName = user.getFullname();
+ String email = user.getEmail();
+ String avatarID = user.getUserAvatarId();
+ String avatarURL = user.getUserAvatarURL();
+ //SESSION
+ String currentScope = pContext.getCurrentScope(httpServletRequest);
+ String userToken = pContext.getCurrentUserToken(httpServletRequest);
+ long currGroupId = pContext.getCurrentGroupId(httpServletRequest);
- if (user == null) {
-
- /*USE ANOTHER ACCOUNT (OTHERWHISE BY TEST_USER) FOR RUNNING
- * COMMENT THIS IN DEVELOP ENVIROMENT (UNCOMMENT IN PRODUCTION)*/
- user=TEST_USER;
-
- if (!isWithinPortal()) { //DEV MODE
- user = "francesco.mangiacrapa";
- TEST_USER_FULL_NAME = "Francesco Mangiacrapa";
- //SecurityTokenProvider.instance.set(TEST_TOKEN);
- }
-
- logger.warn("WORKSPACE PORTLET STARTING IN TEST MODE - NO USER FOUND - PORTLETS STARTING WITH FOLLOWING SETTINGS:");
- logger.warn("session id: "+sessionID);
- logger.warn("TEST_USER: "+user);
- logger.warn("TEST_SCOPE: "+TEST_SCOPE);
- logger.warn("USERNAME_ATTRIBUTE: "+USERNAME_ATTRIBUTE);
- session = SessionManager.getInstance().getASLSession(sessionID, user);
- session.setScope(TEST_SCOPE);
- session.setSecurityToken(TEST_TOKEN);
-
- //MANDATORY FOR SOCIAL LIBRARY
- session.setUserAvatarId(user + "Avatar");
- session.setUserFullName(TEST_USER_FULL_NAME);
- session.setUserEmailAddress(user + "@mail.test");
-
- //SET HTTP SESSION ATTRIBUTE
- httpSession.setAttribute(USERNAME_ATTRIBUTE, user);
-
-// withoutPortal = true;
-
- return session;
-
- }
-
- return SessionManager.getInstance().getASLSession(sessionID, user);
+ return new PortalContextInfo(username, fullName, email, avatarID, avatarURL, currentScope, userToken, currGroupId);
}
+
/**
* Checks if is session expired.
*
- * @param httpSession the http session
- * @return true if current username into ASL session is WsUtil.TEST_USER, false otherwise
+ * @param httpServletRequest the http servlet request
+ * @return true, if is session expired
* @throws Exception the exception
*/
- public static boolean isSessionExpired(HttpSession httpSession) throws Exception {
+ public static boolean isSessionExpired(HttpServletRequest httpServletRequest) throws Exception {
logger.trace("workspace session validating...");
- //READING USERNAME FROM ASL SESSION
- String userUsername = getAslSession(httpSession).getUsername();
- boolean isTestUser = userUsername.compareTo(WsUtil.TEST_USER)==0;
-
- //TODO UNCOMMENT THIS FOR RELEASE
- logger.trace("Is "+WsUtil.TEST_USER+" test user? "+isTestUser);
-
- if(isTestUser){
- logger.error("workspace session is expired! username is: "+WsUtil.TEST_USER);
- return true; //is TEST_USER, session is expired
- }
-
- logger.trace("workspace session is valid! current username is: "+userUsername);
-
- return false;
-
+ PortalContextInfo info = getPortalContext(httpServletRequest);
+ return info.getUsername()==null;
}
/**
* Gets the workspace.
*
- * @param httpSession the http session
+ * @param httpServletRequest the http servlet request
* @return the workspace
* @throws InternalErrorException the internal error exception
* @throws HomeNotFoundException the home not found exception
* @throws WorkspaceFolderNotFoundException the workspace folder not found exception
*/
- public static Workspace getWorkspace(final HttpSession httpSession) throws InternalErrorException, HomeNotFoundException, WorkspaceFolderNotFoundException
+ public static Workspace getWorkspace(HttpServletRequest httpServletRequest) throws InternalErrorException, HomeNotFoundException, WorkspaceFolderNotFoundException
{
logger.trace("Get Workspace");
- final ASLSession session = getAslSession(httpSession);
- logger.trace("ASLSession scope: "+session.getScope() + " username: "+session.getUsername());
+ PortalContextInfo info = getPortalContext(httpServletRequest);
+ logger.trace("PortalContextInfo: "+info);
- ScopeProvider.instance.set(session.getScope());
+ ScopeProvider.instance.set(info.getCurrentScope());
logger.trace("Scope provider instancied");
- Workspace workspace = HomeLibrary.getUserWorkspace(session.getUsername());
+ Workspace workspace = HomeLibrary.getUserWorkspace(info.getUsername());
return workspace;
@@ -199,72 +149,72 @@ public class WsUtil {
/**
* Gets the GWT workspace builder.
*
- * @param httpSession the http session
+ * @param httpServletRequest the http servlet request
* @return the GWT workspace builder
*/
- public static GWTWorkspaceBuilder getGWTWorkspaceBuilder(HttpSession httpSession)
+ public static GWTWorkspaceBuilder getGWTWorkspaceBuilder(HttpServletRequest httpServletRequest)
{
- ASLSession session = getAslSession(httpSession);
+ PortalContextInfo info = getPortalContext(httpServletRequest);
+ logger.trace("PortalContextInfo: "+info);
+
+ HttpSession session = httpServletRequest.getSession();
+
GWTWorkspaceBuilder builder = (GWTWorkspaceBuilder) session.getAttribute(WORKSPACEBUILDER_ATTRIBUTE);
if (builder == null){
logger.info("Initializing the workspace area builder");
builder = new GWTWorkspaceBuilder();
//ADDED 03/09/2013
- builder.setUserLogged(new InfoContactModel(session.getUsername(), session.getUsername(), session.getUserFullName(), false));
+ builder.setUserLogged(new InfoContactModel(info.getUsername(), info.getUsername(), info.getUserFullName(), false));
session.setAttribute(WORKSPACEBUILDER_ATTRIBUTE, builder);
}
return builder;
}
+
/**
* Gets the notification manager.
*
- * @param session the session
- * @param request the request
+ * @param httpServletRequest the http servlet request
* @return the notification manager
*/
- public static NotificationsManager getNotificationManager(ASLSession session, HttpServletRequest request)
+ public static NotificationsManager getNotificationManager(HttpServletRequest httpServletRequest)
{
-
+ PortalContextInfo info = getPortalContext(httpServletRequest);
+ HttpSession session = httpServletRequest.getSession();
NotificationsManager notifMng = (NotificationsManager) session.getAttribute(NOTIFICATION_MANAGER);
if (notifMng == null) {
try{
- logger.trace("Create new NotificationsManager for user: "+session.getUsername());
+ logger.trace("Create new NotificationsManager for user: "+info.getUsername());
logger.trace("New ApplicationNotificationsManager with portlet class name: "+NOTIFICATION_PORTLET_CLASS_ID);
- SocialNetworkingSite site = new SocialNetworkingSite(request);
- SocialNetworkingUser curser = new SocialNetworkingUser(session.getUsername(), session.getUserEmailAddress(), session.getUserFullName(), session.getUserAvatarId());
- notifMng = new ApplicationNotificationsManager(site, session.getScope(), curser, NOTIFICATION_PORTLET_CLASS_ID);
+ SocialNetworkingSite site = new SocialNetworkingSite(httpServletRequest);
+ SocialNetworkingUser curser = new SocialNetworkingUser(info.getUsername(), info.getUserEmail(), info.getUserFullName(), info.getUserAvatarID());
+ notifMng = new ApplicationNotificationsManager(site, info.getCurrentScope(), curser, NOTIFICATION_PORTLET_CLASS_ID);
session.setAttribute(NOTIFICATION_MANAGER, notifMng);
}catch (Exception e) {
- logger.error("An error occurred instancing ApplicationNotificationsManager for user: "+session.getUsername(),e);
+ logger.error("An error occurred instancing ApplicationNotificationsManager for user: "+info.getUsername(),e);
}
}
return notifMng;
-
-
-// SocialNetworkingSite site = new SocialNetworkingSite(request);
-// SocialNetworkingUser curser = new SocialNetworkingUser(session.getUsername(), session.getUserEmailAddress(), session.getUserFullName(), session.getUserAvatarId());
-// return new ApplicationNotificationsManager(site, session.getScope(), curser, NOTIFICATION_PORTLET_CLASS_ID);
}
/**
* Gets the notification producer.
*
- * @param session the session
- * @param request the request
+ * @param httpServletRequest the http servlet request
* @return the notification producer
*/
- public static NotificationsProducer getNotificationProducer(ASLSession session, HttpServletRequest request)
+ public static NotificationsProducer getNotificationProducer(HttpServletRequest httpServletRequest)
{
-
+ PortalContextInfo info = getPortalContext(httpServletRequest);
+ HttpSession session = httpServletRequest.getSession();
NotificationsProducer notifProducer = (NotificationsProducer) session.getAttribute(NOTIFICATION_PRODUCER);
if (notifProducer == null) {
- logger.trace("Create new Notification Producer for user: "+session.getUsername());
- notifProducer = new NotificationsProducer(session, request);
+ logger.trace("Create new Notification Producer for user: "+info.getUsername());
+ notifProducer = new NotificationsProducer(httpServletRequest);
session.setAttribute(NOTIFICATION_PRODUCER, notifProducer);
}
@@ -273,30 +223,30 @@ public class WsUtil {
//return new NotificationsProducer(session, request);
}
+
/**
* Gets the user id.
*
- * @param httpSession the http session
+ * @param httpServletRequest the http servlet request
* @return the user id
*/
- public static String getUserId(HttpSession httpSession) {
+ public static String getUserId(HttpServletRequest httpServletRequest) {
- ASLSession session = getAslSession(httpSession);
-
- return session.getUsername();
+ PortalContextInfo info = getPortalContext(httpServletRequest);
+ return info.getUsername();
}
+
+
/**
* Checks if is vre.
*
- * @param session the session
+ * @param scope the scope
* @return true, if is vre
*/
- public static boolean isVRE(ASLSession session){
+ public static boolean isVRE(String scope){
- String currentScope = session.getScopeName();
-
- int slashCount = StringUtils.countMatches(currentScope, "/");
+ int slashCount = StringUtils.countMatches(scope, "/");
if(slashCount < 3){
logger.trace("currentScope is not VRE");
@@ -308,21 +258,23 @@ public class WsUtil {
}
+
/**
* Gets the scope util filter.
*
- * @param httpSession the http session
+ * @param httpServletRequest the http servlet request
* @return the scope util filter
*/
- public static ScopeUtilFilter getScopeUtilFilter(HttpSession httpSession){
+ public static ScopeUtilFilter getScopeUtilFilter(HttpServletRequest httpServletRequest){
- ASLSession session = getAslSession(httpSession);
+ PortalContextInfo info = getPortalContext(httpServletRequest);
+ HttpSession session = httpServletRequest.getSession();
ScopeUtilFilter scopeUtil = null;
try{
scopeUtil = (ScopeUtilFilter) session.getAttribute(WsUtil.WORKSPACE_SCOPE_UTIL);
if(scopeUtil==null){
- scopeUtil = new ScopeUtilFilter(session.getScopeName(),true);
+ scopeUtil = new ScopeUtilFilter(info.getCurrentScope(),true);
}
}catch (Exception e) {
@@ -336,12 +288,13 @@ public class WsUtil {
/**
* Gets the url shortener.
*
- * @param httpSession the http session
+ * @param httpServletRequest the http servlet request
* @return the url shortener
*/
- public static UrlShortener getUrlShortener(HttpSession httpSession) {
+ public static UrlShortener getUrlShortener(HttpServletRequest httpServletRequest) {
- ASLSession session = getAslSession(httpSession);
+ HttpSession session = httpServletRequest.getSession();
+ PortalContextInfo info = getPortalContext(httpServletRequest);
UrlShortener shortener = null;
try{
shortener = (UrlShortener) session.getAttribute(WsUtil.URL_SHORTENER_SERVICE);
@@ -362,19 +315,19 @@ public class WsUtil {
/**
* Gets the uri resolver.
*
- * @param httpSession the http session
+ * @param httpServletRequest the http servlet request
* @return the uri resolver
*/
- public static UriResolverReaderParameterForResolverIndex getUriResolver(HttpSession httpSession) {
-
- ASLSession session = getAslSession(httpSession);
+ public static UriResolverReaderParameterForResolverIndex getUriResolver(HttpServletRequest httpServletRequest) {
+ HttpSession session = httpServletRequest.getSession();
+ PortalContextInfo info = getPortalContext(httpServletRequest);
UriResolverReaderParameterForResolverIndex uriResolver = null;
try{
uriResolver = (UriResolverReaderParameterForResolverIndex) session.getAttribute(WsUtil.URI_RESOLVER_SERVICE);
if(uriResolver==null){
- uriResolver = new UriResolverReaderParameterForResolverIndex(session.getScope().toString(),RESOLVER_TYPE.SMP_ID);
+ uriResolver = new UriResolverReaderParameterForResolverIndex(info.getCurrentScope(),RESOLVER_TYPE.SMP_ID);
session.setAttribute(URI_RESOLVER_SERVICE, uriResolver);
}
@@ -388,12 +341,12 @@ public class WsUtil {
/**
* Gets the property special folder reader.
*
- * @param httpSession the http session
+ * @param httpServletRequest the http servlet request
* @param pathProperty the path property
* @return the property special folder reader
*/
- public static PropertySpecialFolderReader getPropertySpecialFolderReader(HttpSession httpSession, String pathProperty) {
- ASLSession session = getAslSession(httpSession);
+ public static PropertySpecialFolderReader getPropertySpecialFolderReader(HttpServletRequest httpServletRequest, String pathProperty) {
+ HttpSession session = httpServletRequest.getSession();
PropertySpecialFolderReader psFolderReader = null;
try{