diff --git a/.classpath b/.classpath
index dfe88e5..4c73e2c 100644
--- a/.classpath
+++ b/.classpath
@@ -12,7 +12,6 @@
-
diff --git a/pom.xml b/pom.xml
index eead231..ac7a869 100644
--- a/pom.xml
+++ b/pom.xml
@@ -10,7 +10,7 @@
org.gcube.portlets.user
workspace-tree-widget
- 6.6.0-SNAPSHOT
+ 6.7.0-SNAPSHOT
gCube Workspace Tree Widget
gCube Workspace Tree Widget.
@@ -116,11 +116,17 @@
aslcore
provided
+
+
+
+
+
+
+
- org.apache.directory.studio
- org.apache.commons.io
- 2.1
- provided
+ commons-io
+ commons-io
+ 2.4
diff --git a/src/main/java/org/gcube/portlets/user/workspace/client/AppControllerExplorer.java b/src/main/java/org/gcube/portlets/user/workspace/client/AppControllerExplorer.java
index cea2f47..75c65a8 100644
--- a/src/main/java/org/gcube/portlets/user/workspace/client/AppControllerExplorer.java
+++ b/src/main/java/org/gcube/portlets/user/workspace/client/AppControllerExplorer.java
@@ -103,7 +103,6 @@ import org.gcube.portlets.user.workspace.client.model.SubTree;
import org.gcube.portlets.user.workspace.client.rpc.GWTWorkspaceService;
import org.gcube.portlets.user.workspace.client.rpc.GWTWorkspaceServiceAsync;
import org.gcube.portlets.user.workspace.client.uploader.FileUploader;
-import org.gcube.portlets.user.workspace.client.uploader.UpdateServiceUploader;
import org.gcube.portlets.user.workspace.client.util.RequestBuilderWorkspaceValidateItem;
import org.gcube.portlets.user.workspace.client.util.WindowOpenParameter;
import org.gcube.portlets.user.workspace.client.view.BasicDNDExample;
@@ -137,7 +136,6 @@ import org.gcube.portlets.widgets.fileupload.client.events.FileUploadCompleteEve
import org.gcube.portlets.widgets.fileupload.client.events.FileUploadCompleteEventHandler;
import org.gcube.portlets.widgets.fileupload.client.events.FileUploadSelectedEvent;
import org.gcube.portlets.widgets.fileupload.client.events.FileUploadSelectedEventHandler;
-import org.gcube.portlets.widgets.fileupload.client.view.UploadProgressDialog;
import com.extjs.gxt.ui.client.Registry;
import com.extjs.gxt.ui.client.event.BaseEvent;
diff --git a/src/main/java/org/gcube/portlets/user/workspace/client/rpc/GWTWorkspaceService.java b/src/main/java/org/gcube/portlets/user/workspace/client/rpc/GWTWorkspaceService.java
index 5f5ee40..c0e7d70 100644
--- a/src/main/java/org/gcube/portlets/user/workspace/client/rpc/GWTWorkspaceService.java
+++ b/src/main/java/org/gcube/portlets/user/workspace/client/rpc/GWTWorkspaceService.java
@@ -16,6 +16,7 @@ import org.gcube.portlets.user.workspace.client.model.SmartFolderModel;
import org.gcube.portlets.user.workspace.client.model.SubTree;
import org.gcube.portlets.user.workspace.client.workspace.GWTWorkspaceItem;
import org.gcube.portlets.user.workspace.shared.SessionExpiredException;
+import org.gcube.portlets.user.workspace.shared.WorkspaceACL;
import org.gcube.portlets.user.workspace.shared.accounting.GxtAccountingField;
import com.google.gwt.user.client.rpc.RemoteService;
@@ -192,4 +193,9 @@ public interface GWTWorkspaceService extends RemoteService{
*/
Boolean moveItems(List ids, String destinationId) throws Exception;
+ List getACLs() throws Exception;
+
+ void setACLs(String folderId, List listLogins, String aclType)
+ throws Exception;
+
}
diff --git a/src/main/java/org/gcube/portlets/user/workspace/client/rpc/GWTWorkspaceServiceAsync.java b/src/main/java/org/gcube/portlets/user/workspace/client/rpc/GWTWorkspaceServiceAsync.java
index c841f57..58c5875 100644
--- a/src/main/java/org/gcube/portlets/user/workspace/client/rpc/GWTWorkspaceServiceAsync.java
+++ b/src/main/java/org/gcube/portlets/user/workspace/client/rpc/GWTWorkspaceServiceAsync.java
@@ -15,6 +15,7 @@ import org.gcube.portlets.user.workspace.client.model.ScopeModel;
import org.gcube.portlets.user.workspace.client.model.SmartFolderModel;
import org.gcube.portlets.user.workspace.client.model.SubTree;
import org.gcube.portlets.user.workspace.client.workspace.GWTWorkspaceItem;
+import org.gcube.portlets.user.workspace.shared.WorkspaceACL;
import org.gcube.portlets.user.workspace.shared.accounting.GxtAccountingField;
import com.google.gwt.user.client.rpc.AsyncCallback;
@@ -170,4 +171,9 @@ public interface GWTWorkspaceServiceAsync {
void moveItems(List ids, String destinationId,
AsyncCallback callback);
+ void getACLs(AsyncCallback> callback);
+
+ void setACLs(String folderId, List listLogins, String aclType,
+ AsyncCallback callback);
+
}
diff --git a/src/main/java/org/gcube/portlets/user/workspace/client/view/sharing/DialogPermission.java b/src/main/java/org/gcube/portlets/user/workspace/client/view/sharing/DialogPermission.java
new file mode 100644
index 0000000..df80620
--- /dev/null
+++ b/src/main/java/org/gcube/portlets/user/workspace/client/view/sharing/DialogPermission.java
@@ -0,0 +1,285 @@
+package org.gcube.portlets.user.workspace.client.view.sharing;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.gcube.portlets.user.workspace.client.AppControllerExplorer;
+import org.gcube.portlets.user.workspace.client.model.FileModel;
+import org.gcube.portlets.user.workspace.client.model.InfoContactModel;
+import org.gcube.portlets.user.workspace.client.resources.Resources;
+import org.gcube.portlets.user.workspace.client.view.sharing.multisuggest.MultiValuePanel;
+import org.gcube.portlets.user.workspace.shared.WorkspaceACL;
+
+import com.extjs.gxt.ui.client.Style.HorizontalAlignment;
+import com.extjs.gxt.ui.client.Style.Scroll;
+import com.extjs.gxt.ui.client.event.ButtonEvent;
+import com.extjs.gxt.ui.client.event.SelectionListener;
+import com.extjs.gxt.ui.client.widget.Dialog;
+import com.extjs.gxt.ui.client.widget.LayoutContainer;
+import com.extjs.gxt.ui.client.widget.form.CheckBox;
+import com.extjs.gxt.ui.client.widget.form.CheckBoxGroup;
+import com.extjs.gxt.ui.client.widget.layout.FormLayout;
+import com.extjs.gxt.ui.client.widget.tips.ToolTipConfig;
+import com.google.gwt.event.shared.HandlerManager;
+import com.google.gwt.user.client.rpc.AsyncCallback;
+import com.google.gwt.user.client.ui.FlexTable;
+import com.google.gwt.user.client.ui.Label;
+
+/**
+ * @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
+ *
+ */
+public class DialogPermission extends Dialog {
+
+ private int widthDialog = 530;
+ private FileModel parentFolder = null;
+ private UserStore userStore = new UserStore();
+ private MultiValuePanel suggestPanel = new MultiValuePanel(userStore);
+ private CheckBoxGroup checkGroup = new CheckBoxGroup();
+ private LayoutContainer lc = new LayoutContainer();
+ private List listAlreadyShared = new ArrayList(){
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * Compare Login
+ */
+ @Override
+ public boolean contains(Object o) {
+
+ if(o==null)
+ return false;
+
+ InfoContactModel contact = (InfoContactModel) o;
+
+ for (int i = 0; i < listAlreadyShared.size(); i++){
+ if (contact.getName().compareTo(listAlreadyShared.get(i).getName())==0)
+ return true;
+ }
+
+ return false;
+
+ };
+
+
+ };
+
+
+ public FileModel getParentFolder() {
+ return parentFolder;
+ }
+
+ public void initLayout(String folderParentName){
+ FormLayout layout = new FormLayout();
+ layout.setLabelWidth(90);
+ layout.setDefaultWidth(380);
+ setLayout(layout);
+ setModal(true);
+ setScrollMode(Scroll.AUTOY);
+ setBodyStyle("padding: 9px; background: none");
+ setWidth(widthDialog);
+ setHeight(200);
+ setResizable(true);
+ setButtonAlign(HorizontalAlignment.CENTER);
+ setWidth(widthDialog);
+ setButtons(Dialog.OKCANCEL);
+ lc.setStyleAttribute("margin-top", "10px");
+ lc.setStyleAttribute("margin-bottom", "10px");
+ lc.setSize(480, 50);
+ }
+
+ /**
+ * Use to create a new shared folder
+ */
+ public DialogPermission(String folderParentName, HandlerManager eventBus) {
+
+ initLayout(folderParentName);
+ this.setIcon(Resources.getIconSharedFolder());
+ setHeading("Set permission to folder: "+folderParentName);
+
+ setWidth(widthDialog);
+ setButtons(Dialog.OKCANCEL);
+
+ FlexTable flexTable = new FlexTable();
+ flexTable.setStyleName("userssuggest");
+ Label lableShareWith = new Label("Administrators");
+ flexTable.setWidget(0, 0, lableShareWith);
+ flexTable.setWidget(0, 1, suggestPanel);
+
+ checkGroup.mask("Loading");
+
+ AppControllerExplorer.rpcWorkspaceService.getACLs(new AsyncCallback>() {
+
+ @Override
+ public void onSuccess(List result) {
+ for (WorkspaceACL acl : result) {
+ CheckBox box = createCheckBox(acl);
+ checkGroup.add(box);
+ }
+ checkGroup.unmask();
+ lc.layout();
+ }
+
+ @Override
+ public void onFailure(Throwable caught) {
+ checkGroup.unmask();
+
+ }
+ });
+
+
+ Label labelOthers = new Label("Others");
+ flexTable.setWidget(2, 0, labelOthers);
+ flexTable.setWidget(2, 1, checkGroup);
+
+ lc.add(flexTable);
+
+ add(lc);
+ addListners();
+ }
+
+ private CheckBox createCheckBox(WorkspaceACL acl){
+
+ CheckBox check = new CheckBox();
+// check.setId(dsm.getId());
+// check.setBoxLabel(dsm.getName() + " ("+property+")");
+ check.setBoxLabel(acl.getLabel());
+ check.setValueAttribute(acl.getLabel());
+ check.setData("WORKSPACEACL", acl);
+ check.setToolTip(new ToolTipConfig(acl.getLabel()));
+ return check;
+
+ }
+
+
+ public List getSharedListUsers() {
+// printSelectedUser();
+ return suggestPanel.getSelectedUser();
+ }
+
+
+ public void addListners(){
+
+ this.getButtonById(Dialog.CANCEL).addSelectionListener(new SelectionListener() {
+
+ @Override
+ public void componentSelected(ButtonEvent ce) {
+ hide();
+ }
+ });
+
+
+ this.getButtonById(Dialog.OK).addSelectionListener(new SelectionListener() {
+
+ @Override
+ public void componentSelected(ButtonEvent ce) {
+ if(isValidForm(false))
+ hide();
+ }
+ });
+
+ /* buttonMultiDrag.addClickHandler(new ClickHandler() {
+
+ @Override
+ public void onClick(ClickEvent event) {
+ final MultiDragContact multiDrag = new MultiDragContact();
+ multiDrag.show();
+
+ List exclusiveContacts = userStore.getExclusiveContactsFromAllContact(suggestPanel.getSelectedUser());
+ multiDrag.addSourceContacts(exclusiveContacts);
+
+
+ for (InfoContactModel infoContactModel : suggestPanel.getSelectedUser()) {
+ if(!listAlreadyShared.contains(infoContactModel))
+ multiDrag.addTargetContact(infoContactModel);
+ }
+
+ multiDrag.addAlreadySharedContacts(suggestPanel.getSelectedUser());
+
+// multiDrag.addTargetContacts(suggestPanel.getSelectedUser());
+
+ multiDrag.getButtonById(Dialog.OK).addSelectionListener(new SelectionListener() {
+
+ @Override
+ public void componentSelected(ButtonEvent ce) {
+
+ initSuggestContacts();
+
+ for (InfoContactModel infoContactModel : multiDrag.getTargetListContact()) {
+ suggestPanel.addRecipient(infoContactModel.getName(),true);
+ }
+
+// for (InfoContactModel infoContactModel : multiDrag.getTargetListContact()) {
+//
+// if(!listAlreadySharedContains(infoContactModel))
+// suggestPanel.addRecipient(infoContactModel.getName(),true);
+// }
+
+ suggestPanel.boxSetFocus();
+
+// printSelectedUser();
+ }
+ });
+ }
+ });*/
+ }
+
+ private boolean listAlreadySharedContains(InfoContactModel contact){
+
+ if(contact==null)
+ return false;
+
+ for (InfoContactModel ct : listAlreadyShared) {
+
+ if(ct.getLogin().compareTo(contact.getLogin())==0){
+
+ return true;
+ }
+
+ }
+
+ return false;
+
+ }
+
+ //DEBUG
+ private void printSelectedUser(){
+
+ System.out.println("SELETECTED USERS: ");
+ for (InfoContactModel contact : suggestPanel.getSelectedUser())
+ System.out.println(contact);
+ }
+
+ private void initSuggestContacts(){
+
+ suggestPanel.resetItemSelected();
+
+ for (InfoContactModel contact : listAlreadyShared) {
+ suggestPanel.addRecipient(contact.getName(), false);
+ }
+
+
+ }
+
+ /**
+ *
+ * @param displayAlert
+ * @return
+ */
+ public boolean isValidForm(boolean displayAlert){
+
+ /*
+ if(getSharedListUsers().size()==0){
+ if(displayAlert)
+ new MessageBoxAlert("Attention", "You must pick at least one user with which share the folder", null);
+ suggestPanel.boxSetFocus();
+ return false;
+ }*/
+
+ return true;
+
+ }
+}
diff --git a/src/main/java/org/gcube/portlets/user/workspace/client/view/sharing/DialogShareFolder.java b/src/main/java/org/gcube/portlets/user/workspace/client/view/sharing/DialogShareFolder.java
index fb189fd..78c77dd 100644
--- a/src/main/java/org/gcube/portlets/user/workspace/client/view/sharing/DialogShareFolder.java
+++ b/src/main/java/org/gcube/portlets/user/workspace/client/view/sharing/DialogShareFolder.java
@@ -24,6 +24,7 @@ import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.event.shared.HandlerManager;
import com.google.gwt.user.client.rpc.AsyncCallback;
+import com.google.gwt.user.client.ui.Anchor;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.FlexTable;
import com.google.gwt.user.client.ui.Label;
@@ -135,6 +136,25 @@ public class DialogShareFolder extends Dialog {
flexTable.setWidget(2, 1, textAreaDescription);
+ if(!folder.isShared()){ //SETTABLE PERMISSION ONLY IF FOLDER IS NOT ALREADY SHARED
+ Label labelProperty = new Label("Property");
+ Anchor anchorPermission = new Anchor("Set Permissions");
+ flexTable.setWidget(3, 0, labelProperty);
+ flexTable.setWidget(3, 1, anchorPermission);
+ final DialogPermission permission = new DialogPermission(folderParentName, eventBus);
+ anchorPermission.addClickHandler(new ClickHandler() {
+
+ @Override
+ public void onClick(ClickEvent event) {
+ permission.show();
+
+ }
+ });
+
+// flexTable.setWidget(3, 1, permission);
+
+ }
+
lc.add(flexTable);
lc.mask();
diff --git a/src/main/java/org/gcube/portlets/user/workspace/client/view/sharing/StringNameFilterModel.java b/src/main/java/org/gcube/portlets/user/workspace/client/view/sharing/StringNameFilterModel.java
deleted file mode 100644
index 42edf09..0000000
--- a/src/main/java/org/gcube/portlets/user/workspace/client/view/sharing/StringNameFilterModel.java
+++ /dev/null
@@ -1,32 +0,0 @@
-package org.gcube.portlets.user.workspace.client.view.sharing;
-
-import com.extjs.gxt.ui.client.data.BaseModelData;
-
-/**
- * @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
- *
- */
-public class StringNameFilterModel extends BaseModelData {
-
- /**
- *
- */
- private static final long serialVersionUID = 1L;
-
- public StringNameFilterModel() {
-
- }
-
- public StringNameFilterModel(String name) {
- setName(name);
- }
-
- public String getName() {
- return get("name");
- }
-
- public void setName(String name) {
- set("name", name);
- }
-
-}
diff --git a/src/main/java/org/gcube/portlets/user/workspace/client/view/sharing/UserStore.java b/src/main/java/org/gcube/portlets/user/workspace/client/view/sharing/UserStore.java
index 949d3a6..60fa075 100644
--- a/src/main/java/org/gcube/portlets/user/workspace/client/view/sharing/UserStore.java
+++ b/src/main/java/org/gcube/portlets/user/workspace/client/view/sharing/UserStore.java
@@ -17,7 +17,7 @@ import com.google.gwt.user.client.rpc.AsyncCallback;
*/
public class UserStore implements ContactFetcher{
- public static List listAllContact = null;
+ public List listAllContact = new ArrayList();
// public boolean syncronizeCleanSharedUser = false;
diff --git a/src/main/java/org/gcube/portlets/user/workspace/client/view/trash/TrashInfoContainer.java b/src/main/java/org/gcube/portlets/user/workspace/client/view/trash/TrashInfoContainer.java
index 3267013..c485685 100644
--- a/src/main/java/org/gcube/portlets/user/workspace/client/view/trash/TrashInfoContainer.java
+++ b/src/main/java/org/gcube/portlets/user/workspace/client/view/trash/TrashInfoContainer.java
@@ -11,7 +11,6 @@ import org.gcube.portlets.user.workspace.client.resources.Resources;
import com.extjs.gxt.ui.client.Style.ButtonScale;
import com.extjs.gxt.ui.client.Style.HorizontalAlignment;
-import com.extjs.gxt.ui.client.data.BaseModel;
import com.extjs.gxt.ui.client.data.BaseModelData;
import com.extjs.gxt.ui.client.dnd.GridDropTarget;
import com.extjs.gxt.ui.client.event.ButtonEvent;
@@ -20,7 +19,6 @@ import com.extjs.gxt.ui.client.event.SelectionListener;
import com.extjs.gxt.ui.client.store.GroupingStore;
import com.extjs.gxt.ui.client.store.ListStore;
import com.extjs.gxt.ui.client.store.Record;
-import com.extjs.gxt.ui.client.store.TreeStoreModel;
import com.extjs.gxt.ui.client.widget.ContentPanel;
import com.extjs.gxt.ui.client.widget.LayoutContainer;
import com.extjs.gxt.ui.client.widget.button.ToggleButton;
diff --git a/src/main/java/org/gcube/portlets/user/workspace/server/GWTWorkspaceServiceImpl.java b/src/main/java/org/gcube/portlets/user/workspace/server/GWTWorkspaceServiceImpl.java
index 59b7022..077436b 100644
--- a/src/main/java/org/gcube/portlets/user/workspace/server/GWTWorkspaceServiceImpl.java
+++ b/src/main/java/org/gcube/portlets/user/workspace/server/GWTWorkspaceServiceImpl.java
@@ -19,6 +19,7 @@ import org.gcube.common.homelibrary.home.workspace.WorkspaceItem;
import org.gcube.common.homelibrary.home.workspace.WorkspaceItemType;
import org.gcube.common.homelibrary.home.workspace.WorkspaceSharedFolder;
import org.gcube.common.homelibrary.home.workspace.WorkspaceSmartFolder;
+import org.gcube.common.homelibrary.home.workspace.accessmanager.ACLType;
import org.gcube.common.homelibrary.home.workspace.accounting.AccountingEntry;
import org.gcube.common.homelibrary.home.workspace.exceptions.InsufficientPrivilegesException;
import org.gcube.common.homelibrary.home.workspace.exceptions.ItemAlreadyExistException;
@@ -56,6 +57,7 @@ import org.gcube.portlets.user.workspace.server.util.UserUtil;
import org.gcube.portlets.user.workspace.server.util.WsUtil;
import org.gcube.portlets.user.workspace.server.util.scope.ScopeUtilFilter;
import org.gcube.portlets.user.workspace.shared.SessionExpiredException;
+import org.gcube.portlets.user.workspace.shared.WorkspaceACL;
import org.gcube.portlets.user.workspace.shared.accounting.GxtAccountingEntryType;
import org.gcube.portlets.user.workspace.shared.accounting.GxtAccountingField;
import org.gcube.portlets.user.workspaceapplicationhandler.ApplicationReaderFromGenericResource;
@@ -2448,4 +2450,81 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT
}
}
+
+ /**
+ *
+ * @param folderId
+ * @param listUserIds
+ * @param aclType
+ * @throws Exception
+ */
+ @Override
+ public void setACLs(String folderId, List listLogins, String aclType) throws Exception{
+ try {
+// AccessManager am = HomeLibrary.getHomeManagerFactory().getAccessManager();
+
+ if(folderId == null)
+ throw new Exception("Folder id is null");
+
+ if(listLogins==null || listLogins.size()==0)
+ throw new Exception("List Logins is null or empty");
+
+ Workspace workspace = getWorkspace();
+ WorkspaceItem wsItem = workspace.getItem(folderId);
+
+ if(wsItem.isShared() && (wsItem.getType().equals(WorkspaceItemType.SHARED_FOLDER))){
+ WorkspaceSharedFolder ite = (WorkspaceSharedFolder) workspace.getItemByPath(wsItem.getPath());
+ ite.setACL(listLogins, ACLType.valueOf(aclType));
+ }else
+ throw new Exception("Source item is not shared or shared folder");
+ } catch (Exception e) {
+ workspaceLogger.error("Error in set ACLs", e);
+ String error = ConstantsExplorer.SERVER_ERROR +" setting permissions. "+e.getMessage();
+ throw new Exception(error);
+ }
+ }
+
+ /**
+ *
+ * @return
+ * @throws Exception
+ */
+ @Override
+ public List getACLs() throws Exception{
+ try {
+ List acls = new ArrayList();
+
+ for (ACLType acl : ACLType.values()) {
+
+ switch (acl) {
+ case ADMINISTRATOR:
+ acls.add(new WorkspaceACL(acl.toString(), acl.toString()));
+ break;
+ case READ_ONLY:
+ acls.add(new WorkspaceACL(acl.toString(), "Read Only"));
+ break;
+ case WRITE_OWNER:
+ acls.add(new WorkspaceACL(acl.toString(), "Write Owner"));
+ break;
+
+ case WRITE_ALL:
+ acls.add(new WorkspaceACL(acl.toString(), "Write All"));
+ break;
+
+ default:
+ acls.add(new WorkspaceACL(acl.toString(), acl.toString()));
+ break;
+ }
+ }
+
+ if(acls.size()==0)
+ throw new Exception("No ACLs rules found!");
+
+ return acls;
+ } catch (Exception e) {
+ workspaceLogger.error("Error in server get ACLs", e);
+ String error = ConstantsExplorer.SERVER_ERROR +" get ACL rules. "+e.getMessage();
+ throw new Exception(error);
+ }
+ }
}
diff --git a/src/main/java/org/gcube/portlets/user/workspace/server/LocalUploadServlet.java b/src/main/java/org/gcube/portlets/user/workspace/server/LocalUploadServlet.java
index e5200ad..63f8feb 100644
--- a/src/main/java/org/gcube/portlets/user/workspace/server/LocalUploadServlet.java
+++ b/src/main/java/org/gcube/portlets/user/workspace/server/LocalUploadServlet.java
@@ -5,10 +5,8 @@ package org.gcube.portlets.user.workspace.server;
import java.io.BufferedInputStream;
import java.io.File;
-import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
-import java.net.URLDecoder;
import java.util.Calendar;
import javax.servlet.ServletException;
@@ -44,8 +42,6 @@ import org.gcube.portlets.user.workspace.server.notifications.NotificationsUtil;
import org.gcube.portlets.user.workspace.server.util.WsUtil;
import org.gcube.portlets.user.workspace.shared.HandlerResultMessage;
-import com.google.gwt.http.client.URL;
-
/**
*
* @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
@@ -159,8 +155,7 @@ public class LocalUploadServlet extends HttpServlet {
if(!file.exists())
throw new FileUploadException("File dosn't exists");
- fileUploadIS = FileUtils.openInputStream(file);
-
+ fileUploadIS = FileUtils.openInputStream(file);
} catch (Exception e) {
logger.error("Error processing request in upload servlet", e);
@@ -268,7 +263,6 @@ public class LocalUploadServlet extends HttpServlet {
String newItemName = itemName;
logger.trace("createReport: "+newItemName);
createReport(request.getSession(), wa, newItemName, FileUtils.openInputStream(file), destinationFolder, response, isOverwrite);
-
}else{ //CREATE AN EXTERNAL FILE
createExternalFile(request.getSession(), wa, itemName, FileUtils.openInputStream(file), destinationFolder, contentType, response, isOverwrite);
diff --git a/src/main/java/org/gcube/portlets/user/workspace/server/util/WsUtil.java b/src/main/java/org/gcube/portlets/user/workspace/server/util/WsUtil.java
index 1d80e86..dac3ead 100644
--- a/src/main/java/org/gcube/portlets/user/workspace/server/util/WsUtil.java
+++ b/src/main/java/org/gcube/portlets/user/workspace/server/util/WsUtil.java
@@ -74,10 +74,10 @@ public class WsUtil {
/*USE ANOTHER ACCOUNT (OTHERWHISE BY TEST_USER) FOR RUNNING
* COMMENT THIS IN DEVELOP ENVIROMENT (UNCOMMENT IN PRODUCTION)*/
- user=TEST_USER;
+// user=TEST_USER;
//UNCOMMENT THIS IN DEVELOP ENVIROMENT
-// user = "francesco.mangiacrapa";
+ user = "francesco.mangiacrapa";
logger.warn("WORKSPACE PORTLET STARTING IN TEST MODE - NO USER FOUND - PORTLETS STARTING WITH FOLLOWING SETTINGS:");
logger.warn("session id: "+sessionID);
diff --git a/src/main/java/org/gcube/portlets/user/workspace/shared/WorkspaceACL.java b/src/main/java/org/gcube/portlets/user/workspace/shared/WorkspaceACL.java
new file mode 100644
index 0000000..867bc4f
--- /dev/null
+++ b/src/main/java/org/gcube/portlets/user/workspace/shared/WorkspaceACL.java
@@ -0,0 +1,59 @@
+package org.gcube.portlets.user.workspace.shared;
+
+import java.io.Serializable;
+
+/**
+ *
+ * @author francesco
+ *
+ */
+public class WorkspaceACL implements Serializable{
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = -1682851324671600049L;
+
+ private String id;
+ private String label;
+ public enum USER_TYPE{ADMINISTRATOR, GROUP, OWNER, OTHER};
+
+ public WorkspaceACL(String id, String label) {
+ super();
+ this.id = id;
+ this.label = label;
+ }
+
+
+
+ public WorkspaceACL() {
+ // TODO Auto-generated constructor stub
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getLabel() {
+ return label;
+ }
+
+ public void setLabel(String label) {
+ this.label = label;
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder builder = new StringBuilder();
+ builder.append("WorkspaceACL [id=");
+ builder.append(id);
+ builder.append(", label=");
+ builder.append(label);
+ builder.append("]");
+ return builder.toString();
+ }
+}