Implementing
Feature #5873: Remove ASL Session from the Workspace and its components git-svn-id: http://svn.d4science-ii.research-infrastructures.eu/gcube/trunk/portlets/user/workspace-tree-widget@134769 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
parent
90eda1a95b
commit
a4621f6223
20
pom.xml
20
pom.xml
|
@ -10,7 +10,7 @@
|
|||
|
||||
<groupId>org.gcube.portlets.user</groupId>
|
||||
<artifactId>workspace-tree-widget</artifactId>
|
||||
<version>6.14.0-SNAPSHOT</version>
|
||||
<version>6.15.0-SNAPSHOT</version>
|
||||
<name>gCube Workspace Tree Widget</name>
|
||||
<description>
|
||||
gCube Workspace Tree Widget is a widget to navigate and interact with gCube Workspace
|
||||
|
@ -88,6 +88,14 @@
|
|||
<dependency>
|
||||
<groupId>org.gcube.common.portal</groupId>
|
||||
<artifactId>portal-manager</artifactId>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
|
||||
<!-- User Management Core -->
|
||||
<dependency>
|
||||
<groupId>org.gcube.dvos</groupId>
|
||||
<artifactId>usermanagement-core</artifactId>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
|
||||
<!-- FWS -->
|
||||
|
@ -114,21 +122,11 @@
|
|||
<scope>provided</scope>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.gcube.portal</groupId>
|
||||
<artifactId>custom-portal-handler</artifactId>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.gcube.portlets.user</groupId>
|
||||
<artifactId>gcube-widgets</artifactId>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.gcube.applicationsupportlayer</groupId>
|
||||
<artifactId>aslcore</artifactId>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.gcube.portlets.user</groupId>
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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<MenuEvent>() {
|
||||
// public void componentSelected(MenuEvent ce) {
|
||||
//
|
||||
// FileModel selected = listSelectedItems.get(0);
|
||||
//
|
||||
// if(selected!=null){
|
||||
// eventBus.fireEvent(new OpenReportsEvent(selected));
|
||||
// }
|
||||
// }
|
||||
// });
|
||||
|
||||
openReportTemplate.addSelectionListener(new SelectionListener<MenuEvent>() {
|
||||
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<MenuEvent>() {
|
||||
// public void componentSelected(MenuEvent ce) {
|
||||
//
|
||||
// FileModel selected = listSelectedItems.get(0);
|
||||
//
|
||||
// if (selected != null){
|
||||
// eventBus.fireEvent(new OpenReportsEvent(selected));
|
||||
// }
|
||||
//
|
||||
// }
|
||||
// });
|
||||
|
||||
openReport.addSelectionListener(new SelectionListener<MenuEvent>() {
|
||||
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;
|
||||
|
|
|
@ -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;
|
||||
|
@ -45,8 +44,7 @@ public class DownloadFolderServlet extends HttpServlet{
|
|||
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) {
|
||||
|
||||
|
|
|
@ -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){
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -25,9 +25,12 @@ 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{
|
||||
|
||||
|
@ -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");
|
||||
|
@ -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();
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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<InfoContactModel> 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<InfoContactModel> 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<InfoContactModel> 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) {
|
||||
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
|
||||
}
|
|
@ -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{
|
||||
|
|
Loading…
Reference in New Issue