From dce66bf75c06bfc288bd49be3ab19c2bf9414fbf Mon Sep 17 00:00:00 2001 From: Francesco Mangiacrapa Date: Mon, 16 Sep 2019 13:01:45 +0000 Subject: [PATCH] [Feature #13327] Checking upload permission before the upload starting git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/portlets/widgets/workspace-uploader@181697 82a268e6-3cf1-43bd-a215-b396298e98cf --- .../server/WorkspaceUploadServletStream.java | 26 ++++++++++++------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/src/main/java/org/gcube/portlets/widgets/workspaceuploader/server/WorkspaceUploadServletStream.java b/src/main/java/org/gcube/portlets/widgets/workspaceuploader/server/WorkspaceUploadServletStream.java index 91b736c..cfd740e 100644 --- a/src/main/java/org/gcube/portlets/widgets/workspaceuploader/server/WorkspaceUploadServletStream.java +++ b/src/main/java/org/gcube/portlets/widgets/workspaceuploader/server/WorkspaceUploadServletStream.java @@ -476,18 +476,24 @@ public class WorkspaceUploadServletStream extends HttpServlet implements Servlet } final WorkspaceFolder destinationFolder = (WorkspaceFolder) destinationItem; - - try { - workspace.canUserWriteIntoFolder(destinationFolder.getId()); - } catch (Exception e1) { - logger.warn("The user cannot write in the destination folder with id: {}",destinationFolder.getId()); - saveWorkspaceUploaderStatus(workspaceUploader, UPLOAD_STATUS.FAILED, "You are not authorized to write into folder: "+destinationFolder.getName(), request.getSession()); - sendError(response, "Internal error: You are not authorized to write into folder: "+destinationFolder.getName()); - return; - } - try { + + //CHECKING IF THE USER CAN WRITE IN THE FOLDER + boolean canWrite = workspace.canUserWriteIntoFolder(destinationFolder.getId()); + if(!canWrite) { + String notAuthorizedError = "The user cannot write in the folder with id: "+destinationFolder.getId(); + String folderName = destinationFolder.getName(); + workspaceUploader.setUploadStatus(UPLOAD_STATUS.FAILED); + workspaceUploader.setStatusDescription("You have not permission to upload in the folder: "+folderName); + logger.info(notAuthorizedError); + try { + WsUtil.putWorkspaceUploaderInSession(request.getSession(), workspaceUploader); + } catch (Exception e1) { + logger.error("Error during WorkspaceUploaderItem session update: ",e1); + } + } + //Removing path from fileName String itemName = fileName; //Getting extension