ref 17080: Workspace - list of users I shared folder with varies from a gateway to another

https://support.d4science.org/issues/17080

Fix removed due to problems with shared folder by groups in the old HL

git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/portlets/widgets/workspace-sharing-widget@181148 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
Giancarlo Panichi 2019-07-05 13:12:05 +00:00
parent 651e35ec87
commit b34e54635f
3 changed files with 37 additions and 26 deletions

View File

@ -1,4 +1,8 @@
<ReleaseNotes> <ReleaseNotes>
<Changeset component="portlets-widgets.workspace-sharing-widget.1-9-1"
date="2019-07-05">
<Change>Added support for users in different Gateway [ticket: #17080]</Change>
</Changeset>
<Changeset component="portlets-widgets.workspace-sharing-widget.1-9-0" <Changeset component="portlets-widgets.workspace-sharing-widget.1-9-0"
date="2019-06-05"> date="2019-06-05">
<Change>Updated to StorageHub [ticket: #13226]</Change> <Change>Updated to StorageHub [ticket: #13226]</Change>

View File

@ -14,7 +14,7 @@
<groupId>org.gcube.portlets.widgets</groupId> <groupId>org.gcube.portlets.widgets</groupId>
<artifactId>workspace-sharing-widget</artifactId> <artifactId>workspace-sharing-widget</artifactId>
<packaging>jar</packaging> <packaging>jar</packaging>
<version>1.9.0-SNAPSHOT</version> <version>1.9.1-SNAPSHOT</version>
<name>gCube Workspace Sharing Widget</name> <name>gCube Workspace Sharing Widget</name>
<description> <description>
gCube Workspace Sharing Widget allows users to share gCube Workspace items gCube Workspace Sharing Widget allows users to share gCube Workspace items

View File

@ -50,6 +50,9 @@ import org.gcube.portlets.widgets.workspacesharingwidget.shared.ReportAssignment
import org.gcube.portlets.widgets.workspacesharingwidget.shared.SessionExpiredException; import org.gcube.portlets.widgets.workspacesharingwidget.shared.SessionExpiredException;
import org.gcube.portlets.widgets.workspacesharingwidget.shared.WorkspaceACL; import org.gcube.portlets.widgets.workspacesharingwidget.shared.WorkspaceACL;
import org.gcube.vomanagement.usermanagement.GroupManager; import org.gcube.vomanagement.usermanagement.GroupManager;
import org.gcube.vomanagement.usermanagement.UserManager;
import org.gcube.vomanagement.usermanagement.exception.UserManagementSystemException;
import org.gcube.vomanagement.usermanagement.exception.UserRetrievalFault;
import org.gcube.vomanagement.usermanagement.impl.LiferayGroupManager; import org.gcube.vomanagement.usermanagement.impl.LiferayGroupManager;
import org.gcube.vomanagement.usermanagement.impl.LiferayUserManager; import org.gcube.vomanagement.usermanagement.impl.LiferayUserManager;
import org.gcube.vomanagement.usermanagement.model.GCubeGroup; import org.gcube.vomanagement.usermanagement.model.GCubeGroup;
@ -226,14 +229,18 @@ public class WorkspaceSharingServiceImpl extends RemoteServiceServlet implements
if (map != null && !map.isEmpty()) { if (map != null && !map.isEmpty()) {
List<InfoContactModel> listShared = new ArrayList<>(); List<InfoContactModel> listShared = new ArrayList<>();
List<String> keys = new ArrayList<String>(map.keySet()); List<String> keys = new ArrayList<String>(map.keySet());
List<InfoContactModel> listContactsModel = getAllContacts(); UserManager um = new LiferayUserManager();
GCubeUser curr;
for (String username : keys) { for (String username : keys) {
for (InfoContactModel contact : listContactsModel) { curr = null;
if (contact != null && contact.getLogin() != null try {
&& contact.getLogin().compareTo(username) == 0) { curr = um.getUserByUsername(username);
listShared.add(contact); } catch (Throwable e) {
break; logger.warn("Invalid info for user " + username, e);
} }
if (curr != null && curr.getFullname() != null && !curr.getFullname().isEmpty()) {
InfoContactModel userInfo = new InfoContactModel(username, username, curr.getFullname(), false);
listShared.add(userInfo);
} }
} }
return listShared; return listShared;
@ -713,7 +720,8 @@ public class WorkspaceSharingServiceImpl extends RemoteServiceServlet implements
} }
} else { } else {
logger.error("The item requested is not a valid shared folder : [itemId=" + itemId + "]"); logger.error("The item requested is not a valid shared folder : [itemId=" + itemId + "]");
throw new Exception("The item requested is not a valid shared folder. Impossible set the administrators."); throw new Exception(
"The item requested is not a valid shared folder. Impossible set the administrators.");
} }
} catch (Exception e) { } catch (Exception e) {
@ -1164,7 +1172,6 @@ public class WorkspaceSharingServiceImpl extends RemoteServiceServlet implements
} }
} }
private List<WorkspaceACL> retrieveUserACLsFromFolderContainer(FolderContainer folderContainer) throws Exception { private List<WorkspaceACL> retrieveUserACLsFromFolderContainer(FolderContainer folderContainer) throws Exception {
String currentUser = getMyLogin(); String currentUser = getMyLogin();
logger.debug("Current User: " + currentUser); logger.debug("Current User: " + currentUser);