Removed currUserId parameter from client-side required by external servlets

git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/portlets/widgets/workspace-uploader@141665 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
Francesco Mangiacrapa 2017-01-20 13:26:38 +00:00
parent 285221c644
commit e37f8b2dd6
14 changed files with 116 additions and 138 deletions

View File

@ -1,6 +1,12 @@
<ReleaseNotes>
<Changeset component="org.gcube.portlets-widgets.workspace-uploader.1-6-0" date="2016-12-01">
<Change>Feature #5901 Remove ASL Dependency from workspace-uploader Widget</Change>
<Changeset component="org.gcube.portlets-widgets.workspace-uploader.1-6-1"
date="2016-01-20">
<Change>Removed currUserId parameter from client-side</Change>
</Changeset>
<Changeset component="org.gcube.portlets-widgets.workspace-uploader.1-6-0"
date="2016-12-01">
<Change>Feature #5901 Remove ASL Dependency from workspace-uploader
Widget</Change>
<Change>Bug #6096 Fixed</Change>
</Changeset>
<Changeset component="org.gcube.portlets-widgets.workspace-uploader.1-4-0"

View File

@ -12,7 +12,7 @@
<groupId>org.gcube.portlets.widgets</groupId>
<artifactId>workspace-uploader</artifactId>
<packaging>jar</packaging>
<version>1.6.0-SNAPSHOT</version>
<version>1.6.1-SNAPSHOT</version>
<name>Workspace Uploader Widget</name>
<description>Workspace Uploader Widget allows your application to upload file/s in the gCube Workspace</description>
<scm>

View File

@ -3,11 +3,12 @@ package org.gcube.portlets.widgets.workspaceuploader.client;
import com.google.gwt.core.client.GWT;
/**
* The Class ConstantsWorkspaceUploader.
*
* @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
* Aug 3, 2015
* Jan 20, 2017
*/
public class ConstantsWorkspaceUploader {
@ -24,7 +25,7 @@ public class ConstantsWorkspaceUploader {
// UPLOAD SERVLET PARAMETERS
public static final String CURR_GROUP_ID = "currGroupId";
public static final String CURR_USER_ID = "currUserId";
//public static final String CURR_USER_ID = "currUserId";
public static final String IS_OVERWRITE = "isOverwrite";
public static final String UPLOAD_TYPE = "uploadType";
public static final String ID_FOLDER = "idFolder";

View File

@ -1,7 +1,6 @@
package org.gcube.portlets.widgets.workspaceuploader.client;
import org.gcube.portlets.widgets.workspaceuploader.client.uploader.DialogUpload.UPLOAD_TYPE;
import org.gcube.portal.clientcontext.client.GCubeClientContext;
import org.gcube.portlets.widgets.workspaceuploader.client.uploader.MultipleDilaogUpload;
import org.gcube.portlets.widgets.workspaceuploader.client.uploader.dragdrop.MultipleDNDUpload;

View File

@ -105,7 +105,7 @@ public class DialogUpload extends ClosableDialog implements HasWorskpaceUploadNo
// Add hidden parameters
panel.add(new Hidden(ConstantsWorkspaceUploader.CURR_GROUP_ID, GCubeClientContext.getCurrentContextId()));
panel.add(new Hidden(ConstantsWorkspaceUploader.CURR_USER_ID, GCubeClientContext.getCurrentUserId()));
//panel.add(new Hidden(ConstantsWorkspaceUploader.CURR_USER_ID, GCubeClientContext.getCurrentUserId()));
panel.add(new Hidden(ConstantsWorkspaceUploader.ID_FOLDER,parentId));
panel.add(new Hidden(ConstantsWorkspaceUploader.UPLOAD_TYPE,uploadType.toString()));

View File

@ -6,7 +6,6 @@ package org.gcube.portlets.widgets.workspaceuploader.client.uploader;
import java.util.ArrayList;
import java.util.Arrays;
import org.gcube.portlets.widgets.workspaceuploader.client.ConstantsWorkspaceUploader;
import org.gcube.portlets.widgets.workspaceuploader.client.DialogResult;
import org.gcube.portlets.widgets.workspaceuploader.client.WorkspaceUploaderServiceAsync;

View File

@ -41,7 +41,7 @@ public class MultipleDNDUpload extends LayoutPanel implements HasWorskpaceUpload
private String folder_parent_id = ConstantsWorkspaceUploader.FOLDER_PARENT_ID;
private String item_name = ConstantsWorkspaceUploader.ITEM_NAME;
private String scopeGroupId = ConstantsWorkspaceUploader.CURR_GROUP_ID;
private String currUserId = ConstantsWorkspaceUploader.CURR_USER_ID;
//private String currUserId = ConstantsWorkspaceUploader.CURR_USER_ID;
public static final String FILE_DELEMITER = ";";
private Widget onlyChild;
@ -74,7 +74,7 @@ public class MultipleDNDUpload extends LayoutPanel implements HasWorskpaceUpload
HTML html = new HTML(dnd);
this.add(html);
scopeGroupId = GCubeClientContext.getCurrentContextId();
currUserId = GCubeClientContext.getCurrentUserId();
//currUserId = GCubeClientContext.getCurrentUserId();
}
/**
* Instantiates a new multiple dnd upload.
@ -89,7 +89,7 @@ public class MultipleDNDUpload extends LayoutPanel implements HasWorskpaceUpload
HTML html = new HTML(dnd);
this.add(html);
scopeGroupId = GCubeClientContext.getCurrentContextId();
currUserId = GCubeClientContext.getCurrentUserId();
//currUserId = GCubeClientContext.getCurrentUserId();
setParameters(parentId, uploadType);
}
@ -138,7 +138,7 @@ public class MultipleDNDUpload extends LayoutPanel implements HasWorskpaceUpload
this.idFolder = parentId;
this.type = uploadType;
this.scopeGroupId = GCubeClientContext.getCurrentContextId();
this.currUserId = GCubeClientContext.getCurrentUserId();
//this.currUserId = GCubeClientContext.getCurrentUserId();
}
/**
@ -572,8 +572,8 @@ public class MultipleDNDUpload extends LayoutPanel implements HasWorskpaceUpload
var scopeGroupId = instance.@org.gcube.portlets.widgets.workspaceuploader.client.uploader.dragdrop.MultipleDNDUpload::scopeGroupId;
console.log("scopeGroupId: " + scopeGroupId);
var currUserId = instance.@org.gcube.portlets.widgets.workspaceuploader.client.uploader.dragdrop.MultipleDNDUpload::currUserId;
console.log("currUserId: " + currUserId);
//var currUserId = instance.@org.gcube.portlets.widgets.workspaceuploader.client.uploader.dragdrop.MultipleDNDUpload::currUserId;
//console.log("currUserId: " + currUserId);
if (idfolder === null || idfolder === undefined
|| uploadType === null
@ -651,7 +651,7 @@ public class MultipleDNDUpload extends LayoutPanel implements HasWorskpaceUpload
formdata.append("uploadType", uploadType);
formdata.append("idFolder", idfolder);
formdata.append("currGroupId", scopeGroupId);
formdata.append("currUserId", currUserId);
//formdata.append("currUserId", currUserId);
var overwrite = false;
formdata.append("isOverwrite", overwrite);
@ -677,7 +677,8 @@ public class MultipleDNDUpload extends LayoutPanel implements HasWorskpaceUpload
//var scopegroupid = instance.@org.gcube.portlets.widgets.workspaceuploader.client.uploader.dragdrop.MultipleDNDUpload::scopeGroupId;
console.log("item_name: " + item_name);
var params = folder_parent_id+"="+idfolder+"&"+item_name+"="+files[i].name+"&currGroupId="+scopeGroupId+"&currUserId="+currUserId;
var params = folder_parent_id+"="+idfolder+"&"+item_name+"="+files[i].name+"&currGroupId="+scopeGroupId;
//var params = folder_parent_id+"="+idfolder+"&"+item_name+"="+files[i].name+"&currGroupId="+scopeGroupId+"&currUserId="+currUserId;
console.log("params: " + params);
var response = isFileOverwrite(wsUtil, params, "");
console.log("response overwrite: " + response);

View File

@ -60,6 +60,7 @@ import org.gcube.portlets.widgets.workspaceuploader.shared.HandlerResultMessage;
import org.gcube.portlets.widgets.workspaceuploader.shared.WorkspaceUploadFile;
import org.gcube.portlets.widgets.workspaceuploader.shared.WorkspaceUploaderItem;
import org.gcube.portlets.widgets.workspaceuploader.shared.WorkspaceUploaderItem.UPLOAD_STATUS;
import org.gcube.vomanagement.usermanagement.model.GCubeUser;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
@ -85,7 +86,7 @@ public class WorkspaceUploadServletStream extends HttpServlet implements Servlet
public static final String VRE_ID_ATTR_NAME = "gcube-vreid";
public static final String CURR_GROUP_ID = ConstantsWorkspaceUploader.CURR_GROUP_ID;
public static final String CURR_USER_ID = ConstantsWorkspaceUploader.CURR_USER_ID;
//public static final String CURR_USER_ID = ConstantsWorkspaceUploader.CURR_USER_ID;
public static final String UPLOAD_TYPE = ConstantsWorkspaceUploader.UPLOAD_TYPE;
@ -183,12 +184,12 @@ public class WorkspaceUploadServletStream extends HttpServlet implements Servlet
logger.info("UPLOAD-SERVLET session: "+session);
logger.debug("UPLOAD-SERVLET (" + session.getId() + ") new upload request received.");
// if(WsUtil.isSessionExpired(session)){
// logger.error("SESSION_EXPIRED: session is expired");
// sendSessionExpired(response, "SESSION_EXPIRED: session is expired");
// return;
//// sendError(response, "SESSION_EXPIRED: session is expired");
// }
if(WsUtil.isSessionExpired(request)){
logger.error("SESSION_EXPIRED: session is expired");
sendSessionExpired(response, "SESSION_EXPIRED: session is expired");
return;
}
String destinationId = null;
String uploadType = null;
@ -196,7 +197,7 @@ public class WorkspaceUploadServletStream extends HttpServlet implements Servlet
// String clientUploadKey = null;
FileItemStream uploadItem = null;
ArrayList<String> listClientUploadKeys = null;
GCubeUser user = PortalContext.getConfiguration().getCurrentUser(request);
FileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload servletFileUpload = new ServletFileUpload(factory);
@ -211,6 +212,8 @@ public class WorkspaceUploadServletStream extends HttpServlet implements Servlet
String scopeGroupId = "";
String currUserId = "";
//GET FILE STREAM
while (fileItemIterator.hasNext()) {
FileItemStream item = fileItemIterator.next();
@ -249,18 +252,18 @@ public class WorkspaceUploadServletStream extends HttpServlet implements Servlet
logger.debug("currentGroupId into PortalContext scope= " + PortalContext.getConfiguration().getCurrentScope(scopeGroupId));
}
if (item.isFormField() && CURR_USER_ID.equals(item.getFieldName())){
currUserId = Streams.asString(item.openStream());
logger.debug("currUserId passed as parameter = " + currUserId);
logger.debug("currUserinto PortalContext = " + PortalContext.getConfiguration().getCurrentUser(request));
}
// if (item.isFormField() && CURR_USER_ID.equals(item.getFieldName())){
// currUserId = Streams.asString(item.openStream());
// logger.debug("currUserId passed as parameter = " + currUserId);
// logger.debug("currUserinto PortalContext = " + PortalContext.getConfiguration().getCurrentUser(request));
// }
//MUST BE THE LAST PARAMETER TRASMITTED
if (UPLOAD_FORM_ELEMENT.equals(item.getFieldName())){
uploadItem = item;
logger.debug("UPLOAD_FORM_ELEMENT OK "+uploadItem.getName() + " scopeGroupId="+scopeGroupId);
// break;
uploadData(currUserId, scopeGroupId, request, response, uploadItem, destinationId, uploadType, listClientUploadKeys.get(uploadItemsCnt), isOverwrite);
uploadData(user, scopeGroupId, request, response, uploadItem, destinationId, uploadType, listClientUploadKeys.get(uploadItemsCnt), isOverwrite);
uploadItemsCnt++;
}
}
@ -350,7 +353,7 @@ public class WorkspaceUploadServletStream extends HttpServlet implements Servlet
/**
* Upload data.
*
* @param currUserId the curr user id
* @param user the user
* @param scopeGroupId the scope group id
* @param request the request
* @param response the response
@ -362,7 +365,7 @@ public class WorkspaceUploadServletStream extends HttpServlet implements Servlet
* @throws ServletException the servlet exception
* @throws IOException Signals that an I/O exception has occurred.
*/
private void uploadData(String currUserId, String scopeGroupId, HttpServletRequest request, final HttpServletResponse response, final FileItemStream uploadItem, String destinationId,String uploadType,String clientUploadKey, boolean isOverwrite) throws ServletException, IOException{
private void uploadData(GCubeUser user, String scopeGroupId, HttpServletRequest request, final HttpServletResponse response, final FileItemStream uploadItem, String destinationId,String uploadType,String clientUploadKey, boolean isOverwrite) throws ServletException, IOException{
String fileName = uploadItem.getName();
logger.info("Upload servlet parameters: [fileName: "+fileName+ ", destinationId: "+destinationId +", uploadType: "+uploadType+", isOverwrite: "+isOverwrite+", clientUploadKey: "+clientUploadKey+"]");
@ -402,9 +405,11 @@ public class WorkspaceUploadServletStream extends HttpServlet implements Servlet
// return;
Workspace wa = null;
GCubeUser currUser;
try {
logger.debug("getWorkspace from HL scopeGroupId="+scopeGroupId +", userId="+currUserId);
wa = WsUtil.getWorkspace(request, scopeGroupId, currUserId);
logger.debug("getWorkspace from HL scopeGroupId="+scopeGroupId +", userId="+user);
currUser = PortalContext.getConfiguration().getCurrentUser(request);
wa = WsUtil.getWorkspace(request, scopeGroupId, currUser);
} catch (Exception e) {
logger.error("Error during workspace retrieving", e);
saveWorkspaceUploaderStatus(workspaceUploader, UPLOAD_STATUS.FAILED, "An error occurred during upload: "+fileName+". Error processing request in upload servlet", request.getSession());
@ -490,16 +495,16 @@ public class WorkspaceUploadServletStream extends HttpServlet implements Servlet
String newItemName = itemName;
logger.debug("createTemplate: "+newItemName);
createTemplate(currUserId, scopeGroupId, request, workspaceUploader, request.getSession(), wa, newItemName, inputStream, destinationFolder, response, isOverwrite);
createTemplate(user, scopeGroupId, request, workspaceUploader, request.getSession(), wa, newItemName, inputStream, destinationFolder, response, isOverwrite);
}else if(isZipFile && extension.compareToIgnoreCase(D4SR)==0){ //Create REPORT
String newItemName = itemName;
logger.debug("createReport: "+newItemName);
createReport(currUserId, scopeGroupId, request, workspaceUploader, request.getSession(), wa, newItemName, inputStream, destinationFolder, response, isOverwrite);
createReport(user, scopeGroupId, request, workspaceUploader, request.getSession(), wa, newItemName, inputStream, destinationFolder, response, isOverwrite);
}else{ //CREATE AN EXTERNAL FILE
workspaceUploader = WorkspaceUploaderMng.uploadFile(currUserId, scopeGroupId, request, workspaceUploader, request.getSession(), wa, itemName, inputStream, destinationFolder, contentType, isOverwrite, size);
workspaceUploader = WorkspaceUploaderMng.uploadFile(user, scopeGroupId, request, workspaceUploader, request.getSession(), wa, itemName, inputStream, destinationFolder, contentType, isOverwrite, size);
if(workspaceUploader==null)
throw new Exception("Error when creating uploader, it is null!");
@ -514,7 +519,7 @@ public class WorkspaceUploadServletStream extends HttpServlet implements Servlet
if (MimeTypeUtil.isZipContentType(uploadItem.getContentType())){ //UNZIP??
logger.debug("Unziping content");
//THE WORKSPACE HAS BEEN INSTANCIED ABOVE
workspaceUploader = WorkspaceUploaderMng.uploadArchive(currUserId, scopeGroupId, workspaceUploader, request, itemName, inputStream, destinationFolder, size);
workspaceUploader = WorkspaceUploaderMng.uploadArchive(user, scopeGroupId, workspaceUploader, request, itemName, inputStream, destinationFolder, size);
if(workspaceUploader==null)
throw new Exception("Error when creating uploader, it is null!");
@ -522,7 +527,7 @@ public class WorkspaceUploadServletStream extends HttpServlet implements Servlet
sendMessage(response, workspaceUploader.getIdentifier());
} else{
//THE WORKSPACE HAS BEEN INSTANCIED ABOVE
workspaceUploader = WorkspaceUploaderMng.uploadFile(currUserId, scopeGroupId, request, workspaceUploader, request.getSession(), wa, itemName, inputStream, destinationFolder, contentType, isOverwrite, size);
workspaceUploader = WorkspaceUploaderMng.uploadFile(user, scopeGroupId, request, workspaceUploader, request.getSession(), wa, itemName, inputStream, destinationFolder, contentType, isOverwrite, size);
if(workspaceUploader==null)
throw new Exception("Error when creating uploader, it is null!");
@ -664,7 +669,7 @@ public class WorkspaceUploadServletStream extends HttpServlet implements Servlet
/**
* Notify upload in shared folder.
*
* @param currUserId the curr user id
* @param currUser the curr user
* @param scopeGroupId the scope group id
* @param request the request
* @param httpSession the http session
@ -673,7 +678,7 @@ public class WorkspaceUploadServletStream extends HttpServlet implements Servlet
* @param destinationFolderId the destination folder id
* @param isOverwrite the is overwrite
*/
public static void notifyUploadInSharedFolder(final String currUserId, final String scopeGroupId, final HttpServletRequest request, final HttpSession httpSession, final Workspace workspace, final String itemId, final String destinationFolderId, final boolean isOverwrite){
public static void notifyUploadInSharedFolder(final GCubeUser currUser, final String scopeGroupId, final HttpServletRequest request, final HttpSession httpSession, final Workspace workspace, final String itemId, final String destinationFolderId, final boolean isOverwrite){
logger.trace("[2] HttpServletRequest is: URI: "+request.getRequestURI() +", ServerName: "+request.getServerName());
final NotificationsWorkspaceUploaderProducer np = new NotificationsWorkspaceUploaderProducer(scopeGroupId, httpSession,request);
new Thread(){
@ -684,7 +689,7 @@ public class WorkspaceUploadServletStream extends HttpServlet implements Servlet
String sourceSharedId = sourceItem.getIdSharedFolder();
WorkspaceItem folderDestinationItem = workspace.getItem(destinationFolderId);
logger.trace("[3] HttpServletRequest is: URI: "+request.getRequestURI() +", ServerName: "+request.getServerName());
NotificationsWorkspaceUploader.checkSendNotifyChangedItemToShare(request, currUserId, scopeGroupId, np, httpSession, sourceItem, sourceSharedId, folderDestinationItem,isOverwrite);
NotificationsWorkspaceUploader.checkSendNotifyChangedItemToShare(request, currUser, scopeGroupId, np, httpSession, sourceItem, sourceSharedId, folderDestinationItem,isOverwrite);
} catch (Exception e) {
logger.error("Error in notifyUploadInSharedFolder", e);
}
@ -737,7 +742,7 @@ public class WorkspaceUploadServletStream extends HttpServlet implements Servlet
/**
* Creates the report.
*
* @param currUserId the curr user id
* @param currUser the curr user
* @param scopeGroupId the scope group id
* @param request the request
* @param workspaceUploader the workspace uploader
@ -753,7 +758,7 @@ public class WorkspaceUploadServletStream extends HttpServlet implements Servlet
* @throws InternalErrorException the internal error exception
* @throws IOException Signals that an I/O exception has occurred.
*/
private void createReport(String currUserId, String scopeGroupId, final HttpServletRequest request, WorkspaceUploaderItem workspaceUploader, HttpSession httpSession, Workspace wa, String itemName, InputStream fileInputStream, WorkspaceFolder destinationFolder, HttpServletResponse response, boolean isOverwrite) throws InsufficientPrivilegesException, ItemAlreadyExistException, InternalErrorException, IOException{
private void createReport(GCubeUser currUser, String scopeGroupId, final HttpServletRequest request, WorkspaceUploaderItem workspaceUploader, HttpSession httpSession, Workspace wa, String itemName, InputStream fileInputStream, WorkspaceFolder destinationFolder, HttpServletResponse response, boolean isOverwrite) throws InsufficientPrivilegesException, ItemAlreadyExistException, InternalErrorException, IOException{
try {
@ -763,7 +768,7 @@ public class WorkspaceUploadServletStream extends HttpServlet implements Servlet
itemName = WorkspaceUtil.getUniqueName(itemName, destinationFolder);
report = wa.createReport(itemName, "", Calendar.getInstance(), Calendar.getInstance(), "", "", "", 0, "",fileInputStream, destinationFolder.getId());
notifyUploadInSharedFolder(currUserId, scopeGroupId, request, httpSession,wa,report.getId(),destinationFolder.getId(), isOverwrite);
notifyUploadInSharedFolder(currUser, scopeGroupId, request, httpSession,wa,report.getId(),destinationFolder.getId(), isOverwrite);
sendMessage(response, "File "+report.getName()+" imported correctly in "+destinationFolder.getPath());
}
else{ //CASE OVERWRITE
@ -771,7 +776,7 @@ public class WorkspaceUploadServletStream extends HttpServlet implements Servlet
if(rep!=null){
notifyUploadInSharedFolder(currUserId, scopeGroupId, request, httpSession,wa,rep.getId(),destinationFolder.getId(), isOverwrite);
notifyUploadInSharedFolder(currUser, scopeGroupId, request, httpSession,wa,rep.getId(),destinationFolder.getId(), isOverwrite);
sendMessage(response, "File "+rep.getName()+" imported correctly in "+destinationFolder.getPath());
}
else
@ -799,10 +804,11 @@ public class WorkspaceUploadServletStream extends HttpServlet implements Servlet
}
/**
* Creates the template.
*
* @param currUserId the curr user id
* @param currUser the curr user
* @param scopeGroupId the scope group id
* @param request the request
* @param workspaceUploader the workspace uploader
@ -818,7 +824,7 @@ public class WorkspaceUploadServletStream extends HttpServlet implements Servlet
* @throws InternalErrorException the internal error exception
* @throws IOException Signals that an I/O exception has occurred.
*/
private void createTemplate(String currUserId, String scopeGroupId, final HttpServletRequest request, WorkspaceUploaderItem workspaceUploader, HttpSession httpSession, Workspace wa, String itemName, InputStream fileInputStream, WorkspaceFolder destinationFolder, HttpServletResponse response, boolean isOverwrite) throws InsufficientPrivilegesException, ItemAlreadyExistException, InternalErrorException, IOException{
private void createTemplate(GCubeUser currUser, String scopeGroupId, final HttpServletRequest request, WorkspaceUploaderItem workspaceUploader, HttpSession httpSession, Workspace wa, String itemName, InputStream fileInputStream, WorkspaceFolder destinationFolder, HttpServletResponse response, boolean isOverwrite) throws InsufficientPrivilegesException, ItemAlreadyExistException, InternalErrorException, IOException{
try {
@ -828,7 +834,7 @@ public class WorkspaceUploadServletStream extends HttpServlet implements Servlet
itemName = WorkspaceUtil.getUniqueName(itemName, destinationFolder);
template = wa.createReportTemplate(itemName, "", Calendar.getInstance(), Calendar.getInstance(), "", "", 0, "", fileInputStream, destinationFolder.getId());
notifyUploadInSharedFolder(currUserId, scopeGroupId, request, httpSession,wa,template.getId(),destinationFolder.getId(), isOverwrite);
notifyUploadInSharedFolder(currUser, scopeGroupId, request, httpSession,wa,template.getId(),destinationFolder.getId(), isOverwrite);
sendMessage(response, "File "+template.getName()+" imported correctly in "+destinationFolder.getPath());
}else{ //CASE OVERWRITE
@ -836,7 +842,7 @@ public class WorkspaceUploadServletStream extends HttpServlet implements Servlet
if(rep!=null){
notifyUploadInSharedFolder(currUserId, scopeGroupId, request, httpSession,wa,rep.getId(),destinationFolder.getId(), isOverwrite);
notifyUploadInSharedFolder(currUser, scopeGroupId, request, httpSession,wa,rep.getId(),destinationFolder.getId(), isOverwrite);
sendMessage(response, "File "+rep.getName()+" imported correctly in "+destinationFolder.getPath());
}
else

View File

@ -110,7 +110,7 @@ public class WorkspaceUploaderServiceImpl extends RemoteServiceServlet implement
try {
String scopeGroupId = ""+PortalContext.getConfiguration().getCurrentGroupId(getThreadLocalRequest());
GCubeUser currUser = PortalContext.getConfiguration().getCurrentUser(getThreadLocalRequest());
workspace = WsUtil.getWorkspace(getThreadLocalRequest(), scopeGroupId, currUser.getUserId()+"");
workspace = WsUtil.getWorkspace(getThreadLocalRequest(), scopeGroupId, currUser);
if(workspace!=null)
return workspace.getRoot().getId();
} catch (Exception e) {
@ -132,8 +132,7 @@ public class WorkspaceUploaderServiceImpl extends RemoteServiceServlet implement
try {
String scopeGroupId = ""+PortalContext.getConfiguration().getCurrentGroupId(getThreadLocalRequest());
GCubeUser currUser = PortalContext.getConfiguration().getCurrentUser(getThreadLocalRequest());
String currUserId = currUser!=null?currUser.getUserId()+"":null;
Workspace workspace = WsUtil.getWorkspace(getThreadLocalRequest(), scopeGroupId, currUserId);
Workspace workspace = WsUtil.getWorkspace(getThreadLocalRequest(), scopeGroupId, currUser);
WorkspaceItem wsItem = workspace.getItem(parentId); //GET PARENT
if(wsItem.getType().equals(WorkspaceItemType.FOLDER) || wsItem.getType().equals(WorkspaceItemType.SHARED_FOLDER)){

View File

@ -10,8 +10,10 @@ import javax.servlet.http.HttpServletResponse;
import org.gcube.common.homelibary.model.items.type.WorkspaceItemType;
import org.gcube.common.homelibrary.home.workspace.Workspace;
import org.gcube.common.homelibrary.home.workspace.WorkspaceItem;
import org.gcube.common.portal.PortalContext;
import org.gcube.portlets.widgets.workspaceuploader.client.ConstantsWorkspaceUploader;
import org.gcube.portlets.widgets.workspaceuploader.server.util.WsUtil;
import org.gcube.vomanagement.usermanagement.model.GCubeUser;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@ -34,14 +36,14 @@ public class WorkspaceUploaderWsUtil extends HttpServlet {
String folderParentId = req.getParameter(ConstantsWorkspaceUploader.FOLDER_PARENT_ID);
String itemName = req.getParameter(ConstantsWorkspaceUploader.ITEM_NAME);
String currGroupId = req.getParameter(ConstantsWorkspaceUploader.CURR_GROUP_ID);
String currUserId = req.getParameter(ConstantsWorkspaceUploader.CURR_USER_ID);
//String currUserId = req.getParameter(ConstantsWorkspaceUploader.CURR_USER_ID);
logger.debug("folderParentId: "+folderParentId);
logger.debug("itemName: "+itemName);
logger.debug("currGroupId: "+currGroupId);
logger.debug("currUserId: "+currUserId);
//logger.debug("currUserId: "+currUserId);
try {
String itemId = itemExistsInWorkpaceFolder(currUserId, currGroupId, req, folderParentId, itemName);
String itemId = itemExistsInWorkpaceFolder(currGroupId, req, folderParentId, itemName);
sendOKMessage(resp, itemId);
}
catch (Exception e) {
@ -50,10 +52,10 @@ public class WorkspaceUploaderWsUtil extends HttpServlet {
}
}
/**
* Item exists in workpace folder.
*
* @param currUserId the curr user id
* @param currGroupId the curr group id
* @param req the req
* @param parentId the parent id
@ -61,10 +63,15 @@ public class WorkspaceUploaderWsUtil extends HttpServlet {
* @return the string
* @throws Exception the exception
*/
public String itemExistsInWorkpaceFolder(String currUserId, String currGroupId, HttpServletRequest req, String parentId, String itemName) throws Exception {
public String itemExistsInWorkpaceFolder(String currGroupId, HttpServletRequest req, String parentId, String itemName) throws Exception {
logger.trace("get itemExistsInWorkpace for name: "+itemName+", by parentId: "+parentId);
try {
Workspace workspace = WsUtil.getWorkspace(req, currGroupId, currUserId);
GCubeUser gcubeUser = PortalContext.getConfiguration().getCurrentUser(req);
//IN THIS CASE THE SESSION EXPIRED IS MANAGED BY UPLOAD SERVLET
if(gcubeUser==null)
return null;
Workspace workspace = WsUtil.getWorkspace(req, currGroupId, gcubeUser);
WorkspaceItem wsItem = workspace.getItem(parentId); //GET PARENT
if(wsItem.getType().equals(WorkspaceItemType.FOLDER) || wsItem.getType().equals(WorkspaceItemType.SHARED_FOLDER)){

View File

@ -17,6 +17,7 @@ import org.gcube.common.homelibrary.home.workspace.WorkspaceSharedFolder;
import org.gcube.portlets.widgets.workspaceuploader.server.util.UserUtil;
import org.gcube.portlets.widgets.workspaceuploader.server.util.WsUtil;
import org.gcube.portlets.widgets.workspaceuploader.shared.ContactModel;
import org.gcube.vomanagement.usermanagement.model.GCubeUser;
/**
* The Class NotificationsWorkspaceUploader.
@ -29,12 +30,11 @@ public class NotificationsWorkspaceUploader {
protected static Logger logger = Logger.getLogger(NotificationsWorkspaceUploader.class);
/**
* Check send notify changed item to share.
*
* @param request the request
* @param currUserId the curr user id
* @param currUser the curr user
* @param scopeGroupId the scope group id
* @param np the np
* @param httpSession the http session
@ -43,7 +43,7 @@ public class NotificationsWorkspaceUploader {
* @param folderDestinationItem the folder destination item
* @param isOverwrite the is overwrite
*/
public static void checkSendNotifyChangedItemToShare(HttpServletRequest request, String currUserId, String scopeGroupId, NotificationsWorkspaceUploaderProducer np, HttpSession httpSession, final WorkspaceItem sourceItem, final String sourceSharedId, final WorkspaceItem folderDestinationItem, boolean isOverwrite) {
public static void checkSendNotifyChangedItemToShare(HttpServletRequest request, GCubeUser currUser, String scopeGroupId, NotificationsWorkspaceUploaderProducer np, HttpSession httpSession, final WorkspaceItem sourceItem, final String sourceSharedId, final WorkspaceItem folderDestinationItem, boolean isOverwrite) {
logger.trace("checkSendNotifyAddItemToShare");
@ -64,7 +64,7 @@ public class NotificationsWorkspaceUploader {
//if shareChangeCondition is true.. notifies added item to sharing
if(shareChangeCondition){
Workspace workspace = WsUtil.getWorkspace(request, scopeGroupId, currUserId);
Workspace workspace = WsUtil.getWorkspace(request, scopeGroupId, currUser);
List<ContactModel> listContacts = getListUserSharedByFolderSharedId(workspace, folderDestinationItem.getIdSharedFolder());
@ -151,20 +151,20 @@ public class NotificationsWorkspaceUploader {
/**
* Checks if is a shared folder for id.
*
* @param currUserId the curr user id
* @param user the user
* @param scopeGroupId the scope group id
* @param request the request
* @param itemId the item id
* @return true, if is a shared folder for id
*/
public static boolean isASharedFolderForId(String currUserId, String scopeGroupId, HttpServletRequest request, String itemId){
public static boolean isASharedFolderForId(GCubeUser user, String scopeGroupId, HttpServletRequest request, String itemId){
if(itemId==null || itemId.isEmpty())
return false;
try {
Workspace workspace = WsUtil.getWorkspace(request, scopeGroupId, currUserId);
Workspace workspace = WsUtil.getWorkspace(request, scopeGroupId, user);
WorkspaceItem wsItem = workspace.getItem(itemId);
if(wsItem!=null)

View File

@ -53,30 +53,6 @@ public class NotificationsWorkspaceUploaderProducer {
this.username = currUser.getUsername();
}
/**
* Gets the notification manager.
*
* @param httpSession the http session
* @param session the session
* @param request the request
* @return the notification manager
*/
/*public NotificationsManager getNotificationManager(ASLSession session, HttpServletRequest request) {
try{
logger.trace("Create new NotificationsManager for user: "+session.getUsername());
logger.trace("New ApplicationNotificationsManager with portlet class name: "+WsUtil.NOTIFICATION_PORTLET_CLASS_ID);
boolean isRequestNull = request==null;
// logger.info("The request is null? "+isRequestNull +", request URL: "+request.getRequestURL());
logger.info("The request is null? "+isRequestNull);
SocialNetworkingSite site = new SocialNetworkingSite(request);
SocialNetworkingUser curser = new SocialNetworkingUser(session.getUsername(), session.getUserEmailAddress(), session.getUserFullName(), session.getUserAvatarId());
return new ApplicationNotificationsManager(site, session.getScope(), curser, WsUtil.NOTIFICATION_PORTLET_CLASS_ID);
}catch (Exception e) {
logger.error("An error occurred instancing ApplicationNotificationsManager for user: "+session.getUsername(),e);
return null;
}
}*/
/**
* Gets the notification manager.
*
@ -108,13 +84,6 @@ public class NotificationsWorkspaceUploaderProducer {
}
return notifMng;
/*logger.trace("Create new NotificationsManager for user: "+session.getUsername());
logger.trace("New ApplicationNotificationsManager with portlet class name: "+WsUtil.NOTIFICATION_PORTLET_CLASS_ID);
boolean requestIsNull = request==null;
logger.info("[5] HttpServletRequest is: null? "+requestIsNull+", URI: "+request.getRequestURI() +", ServerName: "+request.getServerName());
SocialNetworkingSite site = new SocialNetworkingSite(request);
SocialNetworkingUser curser = new SocialNetworkingUser(session.getUsername(), session.getUserEmailAddress(), session.getUserFullName(), session.getUserAvatarId());
return new ApplicationNotificationsManager(site, session.getScope(), curser, WsUtil.NOTIFICATION_PORTLET_CLASS_ID);*/
}
/**
* Gets the notifications mng.
@ -147,16 +116,12 @@ public class NotificationsWorkspaceUploaderProducer {
new Thread() {
@Override
public void run() {
// printContacts(listContacts);
logger.info("Send notifies added item in sharedfolder is running...");
//DEBUG
System.out.println("Send notifies added item in sharedfolder is running...");
//System.out.println("Send notifies added item in sharedfolder is running...");
for (ContactModel infoContactModel : listContacts) {
try{
//NOTIFIES ONLY THE USERS THAT ARE DIFFERENT FROM CURRENT USER
if(infoContactModel.getLogin().compareTo(username)!=0){
@ -191,16 +156,12 @@ public class NotificationsWorkspaceUploaderProducer {
new Thread() {
@Override
public void run() {
// printContacts(listContacts);
logger.info("Send notifies updated item in shared folder is running...");
for (ContactModel infoContactModel : listContacts) {
try{
//NOTIFIES ONLY THE USERS THAT ARE DIFFERENT FROM CURRENT USER
if(infoContactModel.getLogin().compareTo(username)!=0){
logger.info("Sending notification to user "+infoContactModel.getLogin() +" updated item "+workspaceItem.getName()+" in shared folder "+sharedFolder.getName());
boolean notify = notificationsMng.notifyUpdatedItem(infoContactModel.getLogin(), workspaceItem, sharedFolder);
@ -210,10 +171,8 @@ public class NotificationsWorkspaceUploaderProducer {
}
}catch (Exception e) {
logger.error("An error updated in notifyAddedItemToSharing ", e);
e.printStackTrace();
}
}
logger.trace("notifies of updated item in shared folder is completed");
}

View File

@ -25,6 +25,7 @@ import org.gcube.portlets.widgets.workspaceuploader.server.WorkspaceUploadServle
import org.gcube.portlets.widgets.workspaceuploader.server.util.WsUtil;
import org.gcube.portlets.widgets.workspaceuploader.shared.WorkspaceUploaderItem;
import org.gcube.portlets.widgets.workspaceuploader.shared.WorkspaceUploaderItem.UPLOAD_STATUS;
import org.gcube.vomanagement.usermanagement.model.GCubeUser;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@ -50,7 +51,7 @@ public class WorkspaceUploaderMng {
/**
* Creates the workspace uploader file.
*
* @param currUserId the curr user id
* @param currUser the curr user
* @param scopeGroupId the scope group id
* @param request the request
* @param workspaceUploader the workspace uploader
@ -66,7 +67,7 @@ public class WorkspaceUploaderMng {
* @throws InternalErrorException the internal error exception
* @throws IOException Signals that an I/O exception has occurred.
*/
private static WorkspaceUploaderItem createWorkspaceUploaderFile(String currUserId, String scopeGroupId, HttpServletRequest request, final WorkspaceUploaderItem workspaceUploader, final HttpSession httpSession, final boolean isOvewrite, final Workspace wa, final InputStream uploadFile, final String itemName, final WorkspaceFolder destinationFolder, final String contentType, final long totalBytes) throws InternalErrorException, IOException{
private static WorkspaceUploaderItem createWorkspaceUploaderFile(final GCubeUser currUser, final String scopeGroupId, final HttpServletRequest request, final WorkspaceUploaderItem workspaceUploader, final HttpSession httpSession, final boolean isOvewrite, final Workspace wa, final InputStream uploadFile, final String itemName, final WorkspaceFolder destinationFolder, final String contentType, final long totalBytes) throws InternalErrorException, IOException{
logger.debug("Creating WorkspaceUploaderFile...");
workspaceUploader.setUploadStatus(UPLOAD_STATUS.IN_PROGRESS);
@ -90,7 +91,7 @@ public class WorkspaceUploaderMng {
workspaceUploader.getFile().setParentId(createdItem.getParent().getId());//SET PARENT ID
workspaceUploader.setStatusDescription("File \""+createdItem.getName()+"\" uploaded correctly in "+destinationFolder.getPath());
workspaceUploader.setUploadStatus(UPLOAD_STATUS.COMPLETED);
WorkspaceUploadServletStream.notifyUploadInSharedFolder(currUserId, scopeGroupId, request, httpSession, wa, createdItem.getId(), createdItem.getParent().getId(), isOvewrite);
WorkspaceUploadServletStream.notifyUploadInSharedFolder(currUser, scopeGroupId, request, httpSession, wa, createdItem.getId(), createdItem.getParent().getId(), isOvewrite);
}else{
workspaceUploader.setStatusDescription("An error occurred during upload: \""+itemName + "\". Try again");
workspaceUploader.setUploadStatus(UPLOAD_STATUS.FAILED);
@ -146,10 +147,11 @@ public class WorkspaceUploaderMng {
}
/**
* Creates the workspace uploader archive.
*
* @param currUserId the curr user id
* @param currUser the curr user
* @param scopeGroupId the scope group id
* @param workspaceUploader the workspace uploader
* @param request the request
@ -161,7 +163,7 @@ public class WorkspaceUploaderMng {
* @throws InternalErrorException the internal error exception
* @throws IOException Signals that an I/O exception has occurred.
*/
private static WorkspaceUploaderItem createWorkspaceUploaderArchive(String currUserId, String scopeGroupId, final WorkspaceUploaderItem workspaceUploader, final HttpServletRequest request, final InputStream uploadFile, final String itemName, final WorkspaceFolder destinationFolder, final long totalBytes) throws InternalErrorException, IOException{
private static WorkspaceUploaderItem createWorkspaceUploaderArchive(final GCubeUser currUser, final String scopeGroupId, final WorkspaceUploaderItem workspaceUploader, final HttpServletRequest request, final InputStream uploadFile, final String itemName, final WorkspaceFolder destinationFolder, final long totalBytes) throws InternalErrorException, IOException{
HttpSession httpSession = request.getSession();
logger.info("calling upload archive - [itemName: "+itemName+"]");
try {
@ -210,7 +212,7 @@ public class WorkspaceUploaderMng {
/**
* Upload file.
*
* @param currUserId the curr user id
* @param currUser the curr user
* @param scopeGroupId the scope group id
* @param request the request
* @param workspaceUploader the workspace uploader
@ -225,10 +227,10 @@ public class WorkspaceUploaderMng {
* @return the workspace uploader item
* @throws Exception the exception
*/
public static WorkspaceUploaderItem uploadFile(String currUserId, String scopeGroupId, HttpServletRequest request, WorkspaceUploaderItem workspaceUploader, HttpSession httpSession, Workspace wa, String itemName, InputStream file, WorkspaceFolder destinationFolder, String contentType, boolean isOverwrite, long totolaBytes) throws Exception {
public static WorkspaceUploaderItem uploadFile(GCubeUser currUser, String scopeGroupId, HttpServletRequest request, WorkspaceUploaderItem workspaceUploader, HttpSession httpSession, Workspace wa, String itemName, InputStream file, WorkspaceFolder destinationFolder, String contentType, boolean isOverwrite, long totolaBytes) throws Exception {
try {
return createWorkspaceUploaderFile(currUserId, scopeGroupId, request, workspaceUploader, httpSession, isOverwrite, wa, file, itemName, destinationFolder, contentType, totolaBytes);
return createWorkspaceUploaderFile(currUser, scopeGroupId, request, workspaceUploader, httpSession, isOverwrite, wa, file, itemName, destinationFolder, contentType, totolaBytes);
} catch (Exception e) {
logger.error("Error when uploading file to HL : ",e);
throw new Exception("An error occurred during upload: "+itemName+". Try again");
@ -239,7 +241,7 @@ public class WorkspaceUploaderMng {
/**
* Upload archive.
*
* @param currUserId the curr user id
* @param currUser the curr user
* @param scopeGroupId the scope group id
* @param workspaceUploader the workspace uploader
* @param request the request
@ -250,10 +252,10 @@ public class WorkspaceUploaderMng {
* @return the workspace uploader item
* @throws Exception the exception
*/
public static WorkspaceUploaderItem uploadArchive(String currUserId, String scopeGroupId, WorkspaceUploaderItem workspaceUploader, HttpServletRequest request, String itemName, InputStream file, WorkspaceFolder destinationFolder, long totalBytes) throws Exception {
public static WorkspaceUploaderItem uploadArchive(GCubeUser currUser, String scopeGroupId, WorkspaceUploaderItem workspaceUploader, HttpServletRequest request, String itemName, InputStream file, WorkspaceFolder destinationFolder, long totalBytes) throws Exception {
try {
return createWorkspaceUploaderArchive(currUserId, scopeGroupId, workspaceUploader, request, file, itemName, destinationFolder, totalBytes);
return createWorkspaceUploaderArchive(currUser, scopeGroupId, workspaceUploader, request, file, itemName, destinationFolder, totalBytes);
} catch (Exception e) {
logger.error("Error when uploading Archive to HL creation: ",e);

View File

@ -15,7 +15,6 @@ import org.gcube.common.homelibrary.home.workspace.exceptions.WorkspaceFolderNot
import org.gcube.common.portal.PortalContext;
import org.gcube.common.scope.api.ScopeProvider;
import org.gcube.portlets.widgets.workspaceuploader.shared.WorkspaceUploaderItem;
import org.gcube.vomanagement.usermanagement.impl.LiferayUserManager;
import org.gcube.vomanagement.usermanagement.model.GCubeUser;
import com.liferay.portal.service.UserLocalServiceUtil;
@ -51,6 +50,19 @@ public class WsUtil {
}
/**
* Checks if is session expired.
*
* @param httpServletRequest the http servlet request
* @return true, if is session expired
* @throws Exception the exception
*/
public static boolean isSessionExpired(HttpServletRequest request) throws Exception {
logger.debug("workspace session validating...");
return PortalContext.getConfiguration().getCurrentUser(request)==null;
}
/**
* Gets the workspace.
*
@ -62,30 +74,17 @@ public class WsUtil {
* @throws HomeNotFoundException the home not found exception
* @throws WorkspaceFolderNotFoundException the workspace folder not found exception
*/
public static Workspace getWorkspace(final HttpServletRequest request, String scopeGroupId, String currUserId) throws InternalErrorException, HomeNotFoundException, WorkspaceFolderNotFoundException{
public static Workspace getWorkspace(final HttpServletRequest request, String scopeGroupId, GCubeUser user) throws InternalErrorException, HomeNotFoundException, WorkspaceFolderNotFoundException, Exception{
if(user==null || user.getUsername().isEmpty())
throw new Exception("Session expired");
logger.trace("Get Workspace");
PortalContext pContext = PortalContext.getConfiguration();
String scope = pContext.getCurrentScope(scopeGroupId);
ScopeProvider.instance.set(scope);
String username = null;
try {
GCubeUser gCubeUser = new LiferayUserManager().getUserById(Long.valueOf(currUserId));
logger.debug("Gcube user read from liferay: "+gCubeUser);
if(gCubeUser!=null && gCubeUser.getUsername()!=null)
username = gCubeUser.getUsername();
} catch (Exception e) {
String error = "Error retrieving gCubeUser for: [userId= "
+ currUserId + ", scope: " + scope + "]";
logger.error(error, e);
}
if(username==null || username.isEmpty())
username = pContext.getCurrentUser(request).getUsername();
String username = user.getUsername();
logger.info("Client context scope: "+ scope + " username: "+username);
return HomeLibrary.getUserWorkspace(username);
}