From 4d08fddfd1084e189fea0570c35c43a88b7cc0b0 Mon Sep 17 00:00:00 2001 From: Francesco Mangiacrapa Date: Thu, 19 Nov 2015 14:53:55 +0000 Subject: [PATCH] added fix to unshare user git-svn-id: http://svn.d4science-ii.research-infrastructures.eu/gcube/trunk/portlets/user/workspace-tree-widget@120318 82a268e6-3cf1-43bd-a215-b396298e98cf --- .../user/workspace/server/GWTWorkspaceServiceImpl.java | 9 +++++++++ .../server/notifications/NotificationsProducer.java | 10 +++++----- 2 files changed, 14 insertions(+), 5 deletions(-) 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 9f69518..11a6b4c 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 @@ -1710,8 +1710,17 @@ public class GWTWorkspaceServiceImpl extends RemoteServiceServlet implements GWT if(listLogin.size()>0){ if(!isNewFolder){ + sharedFolder = workspace.shareFolder(listLogin, folder.getIdentifier()); sharedFolder.setDescription(folder.getDescription()); //SET NEW DESCRIPTION + + //USER REMOVED FROM SHARE + DiffereceBeetweenInfoContactModel diff2 = new DiffereceBeetweenInfoContactModel(listSharedContact, listContacts); + List listRemovedUsersFromShare = diff2.getDifferentsContacts(); + for (InfoContactModel userRemoved : listRemovedUsersFromShare) { + workspaceLogger.info("Unsharing user: "+userRemoved.getLogin()); + sharedFolder.unShare(userRemoved.getLogin()); + } } else{ FileModel parent = folder.getParentFileModel(); diff --git a/src/main/java/org/gcube/portlets/user/workspace/server/notifications/NotificationsProducer.java b/src/main/java/org/gcube/portlets/user/workspace/server/notifications/NotificationsProducer.java index 08f0e13..601590b 100644 --- a/src/main/java/org/gcube/portlets/user/workspace/server/notifications/NotificationsProducer.java +++ b/src/main/java/org/gcube/portlets/user/workspace/server/notifications/NotificationsProducer.java @@ -93,10 +93,10 @@ public class NotificationsProducer { //NOTIFIES ONLY THE USERS THAT ARE DIFFERENT FROM CURRENT USER if(infoContactModel.getLogin().compareTo(userId)!=0){ - logger.trace("Sending notification new share folder "+sharedFolder.getName()+" for user "+infoContactModel.getLogin()); + logger.debug("Sending notification new share folder "+sharedFolder.getName()+" for user "+infoContactModel.getLogin()); //DEBUG - System.out.println("Sending notification new share folder "+sharedFolder.getName()+" for user "+infoContactModel.getLogin()); +// System.out.println("Sending notification new share folder "+sharedFolder.getName()+" for user "+infoContactModel.getLogin()); boolean notify = notificationsMng.notifyFolderSharing(infoContactModel.getLogin(), sharedFolder); @@ -245,7 +245,7 @@ public class NotificationsProducer { List listNewContactsShared = diff.getDifferentsContacts(); - logger.trace("list new contacts shared: "+listNewContactsShared.size()); + logger.info("list new contacts shared: "+listNewContactsShared.size()); if(listNewContactsShared.size()>0){ @@ -311,7 +311,7 @@ public class NotificationsProducer { List listRemovedUsersFromShare = diff2.getDifferentsContacts(); - logger.trace("list removed contacts from share: "+listNewContactsShared.size()); + logger.info("list removed contacts from share: "+listRemovedUsersFromShare.size()); if(listRemovedUsersFromShare.size()>0){ @@ -393,7 +393,7 @@ public class NotificationsProducer { //NOTIFIES ONLY THE USERS THAT ARE DIFFERENT FROM CURRENT USER if(userUnShared.getLogin().compareTo(userId)!=0){ - logger.trace("Sending notification to user "+userUnShared.getLogin() +" unshared from folder "+shareFolder.getName()); + logger.debug("Sending notification to user "+userUnShared.getLogin() +" unshared from folder "+shareFolder.getName()); boolean notify = notificationsMng.notifyFolderRemovedUser(userUnShared.getLogin(), (WorkspaceSharedFolder) shareFolder); if(!notify)