[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
This commit is contained in:
Francesco Mangiacrapa 2019-09-16 13:01:45 +00:00
parent c1e9f1f89e
commit dce66bf75c
1 changed files with 16 additions and 10 deletions

View File

@ -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