From 9a41022e2cacc0682a003fef3a6cb166d45cd482 Mon Sep 17 00:00:00 2001 From: Giancarlo Panichi Date: Mon, 22 Jul 2019 16:35:12 +0000 Subject: [PATCH] Added Users list filter by keywords git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/portlets/widgets/workspace-sharing-widget@181291 82a268e6-3cf1-43bd-a215-b396298e98cf --- .../client/rpc/WorkspaceSharingService.java | 11 ++++-- .../rpc/WorkspaceSharingServiceAsync.java | 11 ++++-- .../server/GWTWorkspaceSharingBuilder.java | 39 +++++++++++++++++++ .../server/WorkspaceSharingServiceImpl.java | 37 ++++++++++++++++-- 4 files changed, 87 insertions(+), 11 deletions(-) diff --git a/src/main/java/org/gcube/portlets/widgets/workspacesharingwidget/client/rpc/WorkspaceSharingService.java b/src/main/java/org/gcube/portlets/widgets/workspacesharingwidget/client/rpc/WorkspaceSharingService.java index a6977bc..10eb2f0 100644 --- a/src/main/java/org/gcube/portlets/widgets/workspacesharingwidget/client/rpc/WorkspaceSharingService.java +++ b/src/main/java/org/gcube/portlets/widgets/workspacesharingwidget/client/rpc/WorkspaceSharingService.java @@ -23,6 +23,12 @@ public interface WorkspaceSharingService extends RemoteService { AllowAccess accessToFolderLink(String itemId) throws Exception; List getAllContacts() throws Exception; + + List getUsersByKeyword(String keyword) throws Exception; + + List getVREList() throws Exception; + + List getAllContactsByVRE(GGroup gGroup) throws Exception; List getListUserSharedByFolderSharedId(String folderSharedId) throws Exception; @@ -62,8 +68,5 @@ public interface WorkspaceSharingService extends RemoteService { boolean addAdministratorsByFolderId(String itemId, List listContactLogins) throws Exception; - List getVREList() throws Exception; - - List getUsersByKeyword(String keyword) throws Exception; - + } diff --git a/src/main/java/org/gcube/portlets/widgets/workspacesharingwidget/client/rpc/WorkspaceSharingServiceAsync.java b/src/main/java/org/gcube/portlets/widgets/workspacesharingwidget/client/rpc/WorkspaceSharingServiceAsync.java index 3b0e341..57a8f7c 100644 --- a/src/main/java/org/gcube/portlets/widgets/workspacesharingwidget/client/rpc/WorkspaceSharingServiceAsync.java +++ b/src/main/java/org/gcube/portlets/widgets/workspacesharingwidget/client/rpc/WorkspaceSharingServiceAsync.java @@ -20,6 +20,12 @@ public interface WorkspaceSharingServiceAsync { .create(WorkspaceSharingService.class); void getAllContacts(AsyncCallback> callback); + + void getUsersByKeyword(String keyword, AsyncCallback> callback); + + void getVREList(AsyncCallback> callback); + + void getAllContactsByVRE(GGroup gGroup, AsyncCallback> callback); void getListUserSharedByFolderSharedId(String folderSharedId, AsyncCallback> callback); @@ -62,8 +68,5 @@ public interface WorkspaceSharingServiceAsync { void addAdministratorsByFolderId(String itemId, List listContactLogins, AsyncCallback callback); - void getVREList(AsyncCallback> callback); - - void getUsersByKeyword(String keyword, AsyncCallback> callback); - + } diff --git a/src/main/java/org/gcube/portlets/widgets/workspacesharingwidget/server/GWTWorkspaceSharingBuilder.java b/src/main/java/org/gcube/portlets/widgets/workspacesharingwidget/server/GWTWorkspaceSharingBuilder.java index 28792b1..5848cbc 100644 --- a/src/main/java/org/gcube/portlets/widgets/workspacesharingwidget/server/GWTWorkspaceSharingBuilder.java +++ b/src/main/java/org/gcube/portlets/widgets/workspacesharingwidget/server/GWTWorkspaceSharingBuilder.java @@ -285,6 +285,45 @@ public class GWTWorkspaceSharingBuilder { return listContactsModel; } + + + /** + * + * @param info + * Portal Context info + * @return the list of users + * @throws Exception + * Error + */ + public List buildGXTListContactsModelFromUserModel(PortalContextInfo info,GGroup gGroup) throws Exception { + + List listUsers = new LiferayUserManager().listUsersByGroup(gGroup.getGroupId()); + + if (listUsers == null) { + logger.error("No users found in: " + info.getCurrentScope()); + throw new Exception("An error occurred on recovering users from Portal, try again later"); + } + + List listContactsModel = new ArrayList(); + + logger.trace("List size returned from Portal is: " + listUsers.size()); + + logger.trace("Building list contact model list user model"); + for (GCubeUser userModel : listUsers) { + String fullName = userModel.getFullname(); + + if (fullName != null && !fullName.isEmpty()) + listContactsModel.add( + new InfoContactModel(userModel.getUserId() + "", userModel.getUsername(), fullName, false)); + else + logger.trace("buildGXTListContactsModel is not returning user: " + userModel.getUsername() + + "because name is null or empty"); + } + logger.trace("List contact model completed, return " + listContactsModel.size() + " contacts"); + + return listContactsModel; + } + public ArrayList getVREList(PortalContextInfo info) throws Exception { diff --git a/src/main/java/org/gcube/portlets/widgets/workspacesharingwidget/server/WorkspaceSharingServiceImpl.java b/src/main/java/org/gcube/portlets/widgets/workspacesharingwidget/server/WorkspaceSharingServiceImpl.java index 925e2f4..60b99f0 100644 --- a/src/main/java/org/gcube/portlets/widgets/workspacesharingwidget/server/WorkspaceSharingServiceImpl.java +++ b/src/main/java/org/gcube/portlets/widgets/workspacesharingwidget/server/WorkspaceSharingServiceImpl.java @@ -52,8 +52,6 @@ import org.gcube.portlets.widgets.workspacesharingwidget.shared.SessionExpiredEx import org.gcube.portlets.widgets.workspacesharingwidget.shared.WorkspaceACL; 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.LiferayUserManager; import org.gcube.vomanagement.usermanagement.model.GCubeGroup; @@ -212,7 +210,40 @@ public class WorkspaceSharingServiceImpl extends RemoteServiceServlet implements } - + @Override + public List getAllContactsByVRE(GGroup gGroup) throws Exception { + + try { + logger.info("Call getAllContactsByVRE(): "+gGroup); + + if (isTestMode()) { + logger.debug("WORKSPACE PORTLET IS IN TEST MODE - RETURN TEST USERS AND GROUPS"); + GWTWorkspaceSharingBuilder.getHashTestUsers(); + List listContactsModel = new ArrayList(); + for (String key : GWTWorkspaceSharingBuilder.getHashTestUsers().keySet()) { + InfoContactModel contact = GWTWorkspaceSharingBuilder.getHashTestUsers().get(key); + listContactsModel.add(contact); + } + return listContactsModel; + } + + PortalContextInfo info = WsUtil.getPortalContext(this.getThreadLocalRequest()); + + GWTWorkspaceSharingBuilder builder = new GWTWorkspaceSharingBuilder(); + + List listContactsModel = builder.buildGXTListContactsModelFromUserModel(info,gGroup); + + // listContactsModel.addAll(builder.getGXTListContactsModelFromVOs(info)); + + logger.debug("Get all Gateway Users returning a list having size: " + listContactsModel.size()); + return listContactsModel; + + } catch (Exception e) { + logger.error("Error in getAllContactsByVRE(): " + e.getLocalizedMessage(), e); + throw new Exception("Error retrieving the contacts in the VRE!", e); + } + } + /* * (non-Javadoc)