From 8584bc4647920ae56f88a6021b4578ced647da30 Mon Sep 17 00:00:00 2001 From: Francesco Mangiacrapa Date: Mon, 27 May 2013 16:25:10 +0000 Subject: [PATCH] added notification on upload added case create on history git-svn-id: http://svn.d4science-ii.research-infrastructures.eu/gcube/trunk/portlets/user/workspace-tree-widget@76327 82a268e6-3cf1-43bd-a215-b396298e98cf --- .../client/AppControllerExplorer.java | 2 +- .../workspace/client/resources/Icons.java | 3 + .../workspace/client/resources/Resources.java | 5 + .../client/resources/icons/new_create.png | Bin 0 -> 1310 bytes .../AccoutingInfoContainer.java | 26 ++- .../WindowAccountingInfo.java | 2 +- .../workspace/server/GWTWorkspaceBuilder.java | 19 +- .../user/workspace/server/UploadServlet.java | 58 +++++- .../notifications/NotificationsUtil.java | 190 ++++++++++++++++++ .../user/workspace/server/util/Util.java | 2 +- 10 files changed, 284 insertions(+), 23 deletions(-) create mode 100644 src/main/java/org/gcube/portlets/user/workspace/client/resources/icons/new_create.png rename src/main/java/org/gcube/portlets/user/workspace/client/view/windows/{ => accounting}/AccoutingInfoContainer.java (89%) rename src/main/java/org/gcube/portlets/user/workspace/client/view/windows/{ => accounting}/WindowAccountingInfo.java (97%) create mode 100644 src/main/java/org/gcube/portlets/user/workspace/server/notifications/NotificationsUtil.java 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 d00b9e1..6fd2f6a 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 @@ -99,6 +99,7 @@ import org.gcube.portlets.user.workspace.client.view.tree.AsyncTreePanel; import org.gcube.portlets.user.workspace.client.view.windows.BulkCreatorWindow; import org.gcube.portlets.user.workspace.client.view.windows.DialogAddFolderAndSmart; import org.gcube.portlets.user.workspace.client.view.windows.DialogAddFolderAndSmart.AddType; +import org.gcube.portlets.user.workspace.client.view.windows.accounting.WindowAccountingInfo; import org.gcube.portlets.user.workspace.client.view.windows.DialogAddUrl; import org.gcube.portlets.user.workspace.client.view.windows.DialogGetInfo; import org.gcube.portlets.user.workspace.client.view.windows.DialogText; @@ -108,7 +109,6 @@ import org.gcube.portlets.user.workspace.client.view.windows.InfoDisplay; import org.gcube.portlets.user.workspace.client.view.windows.MessageBoxAlert; import org.gcube.portlets.user.workspace.client.view.windows.MessageBoxConfirm; import org.gcube.portlets.user.workspace.client.view.windows.MessageBoxInfo; -import org.gcube.portlets.user.workspace.client.view.windows.WindowAccountingInfo; import org.gcube.portlets.user.workspace.client.view.windows.WindowImagePreview; import org.gcube.portlets.user.workspace.client.view.windows.WindowOpenUrl; import org.gcube.portlets.user.workspace.client.workspace.GWTWorkspaceItem; diff --git a/src/main/java/org/gcube/portlets/user/workspace/client/resources/Icons.java b/src/main/java/org/gcube/portlets/user/workspace/client/resources/Icons.java index eb30efe..61815e7 100644 --- a/src/main/java/org/gcube/portlets/user/workspace/client/resources/Icons.java +++ b/src/main/java/org/gcube/portlets/user/workspace/client/resources/Icons.java @@ -274,5 +274,8 @@ public interface Icons extends ClientBundle { @Source("icons/cut.png") ImageResource cut(); + + @Source("icons/new_create.png") + ImageResource createNew(); } diff --git a/src/main/java/org/gcube/portlets/user/workspace/client/resources/Resources.java b/src/main/java/org/gcube/portlets/user/workspace/client/resources/Resources.java index 511376e..167ec1f 100644 --- a/src/main/java/org/gcube/portlets/user/workspace/client/resources/Resources.java +++ b/src/main/java/org/gcube/portlets/user/workspace/client/resources/Resources.java @@ -44,6 +44,11 @@ public class Resources { return AbstractImagePrototype.create(ICONS.table()); } + public static AbstractImagePrototype getIconCreateNew(){ + + return AbstractImagePrototype.create(ICONS.createNew()); + } + public static AbstractImagePrototype getIconPpt(){ return AbstractImagePrototype.create(ICONS.ppt()); diff --git a/src/main/java/org/gcube/portlets/user/workspace/client/resources/icons/new_create.png b/src/main/java/org/gcube/portlets/user/workspace/client/resources/icons/new_create.png new file mode 100644 index 0000000000000000000000000000000000000000..715d328b55d911e07cff8b5d64f7901a15be33fe GIT binary patch literal 1310 zcmcIkOK1~87~VdV8ZFqO(2C%=9&IxFYLhH^*d~pQm{Oa7v8PUUC+U*x!`&&_7V+Sr zSg;4dgM#4W;K73z!K3I!JbAF_MFcM*h=QPp9;EARk|u2tJ#}DSKi~KN|9tb$tjG7*TmG9~MnAmHjX!;#%M+wdvVwQq(jXh29c&W`)RKruH1Ql^c86yk#l zCrUsX3khK%8Xg+~c|^cDWB?%y1dgMFAoIK|@idu6V-o>7$85DM&!#i2m~ zc559DS?xfE(-M!$2wh}BKE%PcXG)AwqnxraBBot1&03;){ETMfx@lJ(kjjfOpSc6n ziQ3`gG$J@b^@s#HA;^adoFI#1vNSrkjo$?AqUTIiD=%%)qd`ve>AdLEMX^QS25Qk` z&=+ExFb&oHGwrhfPcT(!>t!w4wZ^rm3dA+6V}m$UGk&LLsv?(7TSp|J>8OICWmICY zWBg}+&8%rz(6WT>y4*^=eU*E%=;*#D?wd~cGRUEm58u%rX=L4h2oei~#vC z7*Ef=b z;0-vkwjgQG?x79OOZMD)^*xXwABM|!&P24zz~Ivx4@#Axq2b{Rzh=I5e_iQXIsJNd g-^l)(k1qFiGqukze|(Ye3p5Ioot#cTnV7%!2SkEdWB>pF literal 0 HcmV?d00001 diff --git a/src/main/java/org/gcube/portlets/user/workspace/client/view/windows/AccoutingInfoContainer.java b/src/main/java/org/gcube/portlets/user/workspace/client/view/windows/accounting/AccoutingInfoContainer.java similarity index 89% rename from src/main/java/org/gcube/portlets/user/workspace/client/view/windows/AccoutingInfoContainer.java rename to src/main/java/org/gcube/portlets/user/workspace/client/view/windows/accounting/AccoutingInfoContainer.java index 3902a56..7e03af4 100644 --- a/src/main/java/org/gcube/portlets/user/workspace/client/view/windows/AccoutingInfoContainer.java +++ b/src/main/java/org/gcube/portlets/user/workspace/client/view/windows/accounting/AccoutingInfoContainer.java @@ -1,4 +1,4 @@ -package org.gcube.portlets.user.workspace.client.view.windows; +package org.gcube.portlets.user.workspace.client.view.windows.accounting; import java.util.ArrayList; import java.util.List; @@ -103,16 +103,20 @@ public class AccoutingInfoContainer extends LayoutContainer { public Object render(ModelData model, String property, ColumnData config, int rowIndex, int colIndex, ListStore store, Grid grid) { - if(model.get(OPERATION).equals(GxtAccountingEntryType.READ)) - return Resources.getIconRead().createImage(); - else if(model.get(OPERATION).equals(GxtAccountingEntryType.CUT)) - return Resources.getIconCut().createImage(); - else if(model.get(OPERATION).equals(GxtAccountingEntryType.PASTE)) - return Resources.getIconPaste().createImage(); - else if(model.get(OPERATION).equals(GxtAccountingEntryType.REMOVE)) - return Resources.getIconCancel().createImage(); - else if(model.get(OPERATION).equals(GxtAccountingEntryType.RENAME)) - return Resources.getIconRenameItem().createImage(); + if(model.get(OPERATION)!=null){ + if(model.get(OPERATION).equals(GxtAccountingEntryType.CREATE)) + return Resources.getIconCreateNew().createImage(); + if(model.get(OPERATION).equals(GxtAccountingEntryType.READ)) + return Resources.getIconRead().createImage(); + else if(model.get(OPERATION).equals(GxtAccountingEntryType.CUT)) + return Resources.getIconCut().createImage(); + else if(model.get(OPERATION).equals(GxtAccountingEntryType.PASTE)) + return Resources.getIconPaste().createImage(); + else if(model.get(OPERATION).equals(GxtAccountingEntryType.REMOVE)) + return Resources.getIconCancel().createImage(); + else if(model.get(OPERATION).equals(GxtAccountingEntryType.RENAME)) + return Resources.getIconRenameItem().createImage(); + } return null; } diff --git a/src/main/java/org/gcube/portlets/user/workspace/client/view/windows/WindowAccountingInfo.java b/src/main/java/org/gcube/portlets/user/workspace/client/view/windows/accounting/WindowAccountingInfo.java similarity index 97% rename from src/main/java/org/gcube/portlets/user/workspace/client/view/windows/WindowAccountingInfo.java rename to src/main/java/org/gcube/portlets/user/workspace/client/view/windows/accounting/WindowAccountingInfo.java index 59dc6fd..895c7d5 100644 --- a/src/main/java/org/gcube/portlets/user/workspace/client/view/windows/WindowAccountingInfo.java +++ b/src/main/java/org/gcube/portlets/user/workspace/client/view/windows/accounting/WindowAccountingInfo.java @@ -1,4 +1,4 @@ -package org.gcube.portlets.user.workspace.client.view.windows; +package org.gcube.portlets.user.workspace.client.view.windows.accounting; import java.util.List; diff --git a/src/main/java/org/gcube/portlets/user/workspace/server/GWTWorkspaceBuilder.java b/src/main/java/org/gcube/portlets/user/workspace/server/GWTWorkspaceBuilder.java index 16776ed..b20f109 100644 --- a/src/main/java/org/gcube/portlets/user/workspace/server/GWTWorkspaceBuilder.java +++ b/src/main/java/org/gcube/portlets/user/workspace/server/GWTWorkspaceBuilder.java @@ -108,6 +108,12 @@ public class GWTWorkspaceBuilder { this.logger = logger; } + /** + * @param logger + */ + public GWTWorkspaceBuilder() { + } + /** * Used in test mode @@ -872,7 +878,7 @@ public class GWTWorkspaceBuilder { * @param listPortalLogin * @return */ - protected List buildGxtInfoContactsFromPortalLogins(List listPortalLogin){ + public List buildGxtInfoContactsFromPortalLogins(List listPortalLogin){ List listContact = new ArrayList(); for (String portalLogin : listPortalLogin) @@ -1655,6 +1661,17 @@ public class GWTWorkspaceBuilder { switch (accountingEntry.getEntryType()) { + + case CREATE: + + if(gxtEntryType==null || gxtEntryType.equals(GxtAccountingEntryType.ALLWITHOUTREAD) || gxtEntryType.equals(GxtAccountingEntryType.CREATE)){ + + af.setOperation(GxtAccountingEntryType.CREATE); + af.setDescription("create by "+user.getName()); + } + + break; + case READ: if(gxtEntryType==null || gxtEntryType.equals(GxtAccountingEntryType.READ)){ diff --git a/src/main/java/org/gcube/portlets/user/workspace/server/UploadServlet.java b/src/main/java/org/gcube/portlets/user/workspace/server/UploadServlet.java index 0e1a65e..8f72ee1 100644 --- a/src/main/java/org/gcube/portlets/user/workspace/server/UploadServlet.java +++ b/src/main/java/org/gcube/portlets/user/workspace/server/UploadServlet.java @@ -14,6 +14,7 @@ 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.fileupload.FileItem; import org.apache.commons.fileupload.FileItemFactory; @@ -40,6 +41,7 @@ import org.gcube.portlets.user.homelibrary.util.MimeTypeUtil; import org.gcube.portlets.user.homelibrary.util.WorkspaceUtil; import org.gcube.portlets.user.homelibrary.util.zip.UnzipUtil; import org.gcube.portlets.user.workspace.client.view.windows.UploadResultMessage; +import org.gcube.portlets.user.workspace.server.notifications.NotificationsUtil; import org.gcube.portlets.user.workspace.server.util.Util; /** @@ -201,7 +203,7 @@ public class UploadServlet extends HttpServlet { // System.out.println("itemwithoutext " +itemwithoutext); logger.trace("createTemplate: "+itemwithoutext); - createTemplate(wa, itemwithoutext, uploadItem.getInputStream(), destinationFolder, response); + createTemplate(request.getSession(), wa, itemwithoutext, uploadItem.getInputStream(), destinationFolder, response); }else if(isZipFile && (extension.compareToIgnoreCase(D4SR)==0)){ //Create REPORT @@ -210,11 +212,11 @@ public class UploadServlet extends HttpServlet { // System.out.println("itemwithoutext " +itemwithoutext); logger.trace("createReport: "+itemwithoutext); - createReport(wa, itemwithoutext, uploadItem.getInputStream(), destinationFolder, response); + createReport(request.getSession(), wa, itemwithoutext, uploadItem.getInputStream(), destinationFolder, response); }else{ //CREATE AN EXTERNAL FILE - createExternalFile(itemName, uploadItem, destinationFolder, contentType, response); + createExternalFile(request.getSession(), wa, itemName, uploadItem, destinationFolder, contentType, response); } }else {//IS ARCHIVE UPLOAD @@ -222,11 +224,13 @@ public class UploadServlet extends HttpServlet { if (MimeTypeUtil.isZipContentType(contentType)){ logger.trace("Unziping content"); UnzipUtil.unzip(destinationFolder, uploadItem.getInputStream(), itemName); + + //TODO NOTIFY UPLOAD ARCHIVE sendMessage(response, "Archive "+uploadItem.getName()+" imported correctly in "+destinationFolder.getPath()); } else - createExternalFile(itemName, uploadItem, destinationFolder, contentType, response); + createExternalFile(request.getSession(), wa, itemName, uploadItem, destinationFolder, contentType, response); } - + uploadItem.delete(); } catch (InsufficientPrivilegesException e) { logger.error("Error creating elements", e); @@ -243,20 +247,55 @@ public class UploadServlet extends HttpServlet { } } - private void createExternalFile(String itemName, FileItem uploadItem, WorkspaceFolder destinationFolder, String contentType, HttpServletResponse response) throws InternalErrorException, InsufficientPrivilegesException, ItemAlreadyExistException, IOException { + /** + * + * @param httpSession + * @param workspace + * @param itemId + * @param destinationFolderId + */ + private void notifyUploadInSharedFolder(final HttpSession httpSession, final Workspace workspace, final String itemId, final String destinationFolderId){ + + new Thread(){ + + public void run() { + + WorkspaceItem sourceItem; + try { + sourceItem = workspace.getItem(itemId); + String sourceSharedId = sourceItem.getIdSharedFolder(); + WorkspaceItem folderDestinationItem = workspace.getItem(destinationFolderId); + NotificationsUtil.checkNotifyAddItemToShare(httpSession, sourceItem, sourceSharedId, folderDestinationItem); + } catch (Exception e) { + logger.error("Error in notifyUploadInSharedFolder", e); + + } + + }; + + }.start(); + } + + private void createExternalFile(HttpSession httpSession, Workspace wa, String itemName, FileItem uploadItem, WorkspaceFolder destinationFolder, String contentType, HttpServletResponse response) throws InternalErrorException, InsufficientPrivilegesException, ItemAlreadyExistException, IOException { //we need to recalculate the item name itemName = WorkspaceUtil.getUniqueName(uploadItem.getName(), destinationFolder); FolderItem createdItem = WorkspaceUtil.createExternalFile(destinationFolder, itemName, "", contentType, uploadItem.getInputStream()); + + notifyUploadInSharedFolder(httpSession,wa,createdItem.getId(),destinationFolder.getId()); + sendMessage(response, "File "+createdItem.getName()+" imported correctly in "+destinationFolder.getPath()); } - private void createReport(Workspace wa, String itemName, InputStream stream, WorkspaceFolder destinationFolder, HttpServletResponse response) throws InsufficientPrivilegesException, ItemAlreadyExistException, InternalErrorException, IOException{ + private void createReport(HttpSession httpSession, Workspace wa, String itemName, InputStream stream, WorkspaceFolder destinationFolder, HttpServletResponse response) throws InsufficientPrivilegesException, ItemAlreadyExistException, InternalErrorException, IOException{ try { itemName = WorkspaceUtil.getUniqueName(itemName, destinationFolder); Report report = wa.createReport(itemName, "", Calendar.getInstance(), Calendar.getInstance(), "", "", "", 0, "", stream, destinationFolder.getId()); + + notifyUploadInSharedFolder(httpSession,wa,report.getId(),destinationFolder.getId()); + sendMessage(response, "File "+report.getName()+" imported correctly in "+destinationFolder.getPath()); } catch (WrongDestinationException e) { @@ -269,11 +308,14 @@ public class UploadServlet extends HttpServlet { } - private void createTemplate(Workspace wa, String itemName, InputStream stream, WorkspaceFolder destinationFolder, HttpServletResponse response) throws InsufficientPrivilegesException, ItemAlreadyExistException, InternalErrorException, IOException{ + private void createTemplate(HttpSession httpSession, Workspace wa, String itemName, InputStream stream, WorkspaceFolder destinationFolder, HttpServletResponse response) throws InsufficientPrivilegesException, ItemAlreadyExistException, InternalErrorException, IOException{ try { itemName = WorkspaceUtil.getUniqueName(itemName, destinationFolder); ReportTemplate template = wa.createReportTemplate(itemName, "", Calendar.getInstance(), Calendar.getInstance(), "", "", 0, "", stream, destinationFolder.getId()); + + notifyUploadInSharedFolder(httpSession,wa,template.getId(),destinationFolder.getId()); + sendMessage(response, "File "+template.getName()+" imported correctly in "+destinationFolder.getPath()); } catch (WrongDestinationException e) { diff --git a/src/main/java/org/gcube/portlets/user/workspace/server/notifications/NotificationsUtil.java b/src/main/java/org/gcube/portlets/user/workspace/server/notifications/NotificationsUtil.java new file mode 100644 index 0000000..e6ecc1e --- /dev/null +++ b/src/main/java/org/gcube/portlets/user/workspace/server/notifications/NotificationsUtil.java @@ -0,0 +1,190 @@ +/** + * + */ +package org.gcube.portlets.user.workspace.server.notifications; + +import java.util.ArrayList; +import java.util.List; + +import javax.servlet.http.HttpSession; + +import org.apache.log4j.Logger; +import org.gcube.portlets.user.homelibrary.home.workspace.Workspace; +import org.gcube.portlets.user.homelibrary.home.workspace.WorkspaceFolder; +import org.gcube.portlets.user.homelibrary.home.workspace.WorkspaceItem; +import org.gcube.portlets.user.homelibrary.home.workspace.WorkspaceItemType; +import org.gcube.portlets.user.homelibrary.home.workspace.WorkspaceSharedFolder; +import org.gcube.portlets.user.workspace.client.model.InfoContactModel; +import org.gcube.portlets.user.workspace.server.GWTWorkspaceBuilder; +import org.gcube.portlets.user.workspace.server.util.Util; + +/** + * @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it + * @May 27, 2013 + * + */ +public class NotificationsUtil { + + + protected static Logger logger = Logger.getLogger(NotificationsUtil.class); + + /** + * + * @param httpSession + * @param sourceItem + * @param sourceSharedId + * @param folderDestinationItem + */ + public static void checkNotifyAddItemToShare(HttpSession httpSession, final WorkspaceItem sourceItem, final String sourceSharedId, final WorkspaceItem folderDestinationItem) { + + logger.trace("checkNotifyAddItemToShare"); + + if(folderDestinationItem!=null){ + + try{ + //if folder destination is shared folder + if(folderDestinationItem.isShared()){ //Notify Added Item To Sharing? + + logger.trace("checkNotifyAddItemToShare source item: "+sourceItem.getName()+" sourceSharedId: "+sourceSharedId + " folder destination: "+folderDestinationItem.getName() + " folder destination shared folder id: "+folderDestinationItem.getIdSharedFolder()); + + //share condition is true if source shared folder is not null + boolean shareChangeCondition = sourceSharedId==null?false:true; + + //System.out.println("shareChangeCondition add item: "+ shareChangeCondition); + + logger.trace("shareChangeCondition add item: "+shareChangeCondition); + + //if shareChangeCondition is true.. notifies added item to sharing + if(shareChangeCondition){ + + Workspace workspace = Util.getWorkspace(httpSession); + + List listContacts = getListUserSharedByFolderSharedId(workspace, folderDestinationItem.getIdSharedFolder()); + + WorkspaceItem destinationSharedFolder = workspace.getItem(folderDestinationItem.getIdSharedFolder()); + + NotificationsProducer np = new NotificationsProducer(Util.getAslSession(httpSession)); + + np.notifyAddedItemToSharing(listContacts, sourceItem, (WorkspaceFolder) destinationSharedFolder); + + logger.trace("The notifies was sent correctly"); +// np.notifyAddedItemToSharing(listContacts, (WorkspaceFolder) folderDestinationItem); + } + } + else + logger.trace("folder destination is not shared"); + + }catch (Exception e) { + logger.error("An error occurred in verifyNotifyAddItemToShare ",e); + } + }else + logger.warn("The notifies is failure in verifyNotifyAddItemToShare because folder destination item is null"); + } + + + /** + * + * @param workspace + * @param idSharedFolder + * @return + * @throws Exception + */ + public static List getListUserSharedByFolderSharedId(Workspace workspace, String idSharedFolder) throws Exception { + + logger.trace("getListUserSharedByFolderSharedId "+ idSharedFolder); + + try { + + WorkspaceItem wsItem = workspace.getItem(idSharedFolder); + + if(Util.isASharedFolder(wsItem)){ + + WorkspaceSharedFolder wsFolder = (WorkspaceSharedFolder) wsItem; + + GWTWorkspaceBuilder builder = new GWTWorkspaceBuilder(); + + List listPortalLogin = wsFolder.getUsers(); + + logger.trace("getListUserSharedByFolderSharedId return "+ listPortalLogin.size() + " user"); + + return builder.buildGxtInfoContactsFromPortalLogins(listPortalLogin); + + } + else{ + logger.trace("the item with id: "+idSharedFolder+ " is not "+WorkspaceItemType.SHARED_FOLDER); + + //DEBUG + //System.out.println("the item with id: "+folderSharedId+ " is not "+WorkspaceItemType.SHARED_FOLDER); + } + return new ArrayList(); + + } catch (Exception e) { + logger.error("Error in getListUserSharedByItemId ", e); + throw new Exception(e.getMessage()); + } + } + + + + /** + * + * @param httpSession + * @param sourceItemIsShared + * @param sourceItem + * @param sourceSharedId + * @param folderDestinationItem + */ + + public static void checkNotifyRemoveItemToShare(HttpSession httpSession, final boolean sourceItemIsShared, final WorkspaceItem sourceItem, final String sourceSharedId, final WorkspaceItem folderDestinationItem) { + + logger.trace("checkNotifyRemoveItemToShare:"); + + try{ + + if(folderDestinationItem!=null){ + + String idSharedFolder = folderDestinationItem.getIdSharedFolder()!=null?folderDestinationItem.getIdSharedFolder():""; + + //share condition is true if source shared folder is not equal to destination shared folder + boolean shareChangeCondition = sourceSharedId==null?false:(sourceSharedId.compareTo(idSharedFolder)!=0); + + logger.trace("checkNotifyRemoveItemToShare source item: "+sourceItem.getName()+" sourceSharedId: "+sourceSharedId + " folder destination: "+folderDestinationItem.getName() +" sourceItemIsShared: "+sourceItemIsShared); + +// System.out.println("shareChangeCondition remove item: "+ shareChangeCondition); + + logger.trace("shareChangeCondition remove item: "+ shareChangeCondition); + + //Notify Removed Item To Sharing? + //if source Item is shared and folder destination is not shared or shareChangeCondition is true.. notifies removed item to sharing + if(sourceItemIsShared && (!folderDestinationItem.isShared() || shareChangeCondition)){ + + Workspace workspace = Util.getWorkspace(httpSession); + + //get contacts + List listContacts = getListUserSharedByFolderSharedId(workspace, sourceSharedId); + + + WorkspaceItem sourceSharedFolder = workspace.getItem(sourceSharedId); + + //System.out.println(" name sourceSharedFolder: "+ sourceSharedFolder.getName()); + + NotificationsProducer np = new NotificationsProducer(Util.getAslSession(httpSession)); + + np.notifyRemovedItemToSharing(listContacts, sourceItem, (WorkspaceFolder) sourceSharedFolder); + + logger.trace("The notifies was sent correctly"); + + } + + }else + logger.warn("The notifies is failure in verifyNotifyRemoveItemToShare because folder destination item is null"); + + }catch (Exception e) { + logger.error("An error occurred in checkNotifyRemoveItemToShare ",e); + } + + } + + + +} diff --git a/src/main/java/org/gcube/portlets/user/workspace/server/util/Util.java b/src/main/java/org/gcube/portlets/user/workspace/server/util/Util.java index 684999c..041a972 100644 --- a/src/main/java/org/gcube/portlets/user/workspace/server/util/Util.java +++ b/src/main/java/org/gcube/portlets/user/workspace/server/util/Util.java @@ -45,7 +45,7 @@ public class Util { // public static final String TEST_SCOPE = "/gcube/devsec"; // public static final String TEST_USER = "pasquale.pagano"; - public static final String TEST_SCOPE = "/gcube"; + public static final String TEST_SCOPE = "/gcube/devsec"; // public static final String TEST_USER = "federico.defaveri"; // public static final String TEST_USER = "massimiliano.assante"; // public static final String TEST_USER = "pasquale.pagano";