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
This commit is contained in:
Giancarlo Panichi 2019-07-22 16:35:12 +00:00
parent a6ebcfaa4e
commit 9a41022e2c
4 changed files with 87 additions and 11 deletions

View File

@ -23,6 +23,12 @@ public interface WorkspaceSharingService extends RemoteService {
AllowAccess accessToFolderLink(String itemId) throws Exception;
List<InfoContactModel> getAllContacts() throws Exception;
List<InfoContactModel> getUsersByKeyword(String keyword) throws Exception;
List<GGroup> getVREList() throws Exception;
List<InfoContactModel> getAllContactsByVRE(GGroup gGroup) throws Exception;
List<InfoContactModel> getListUserSharedByFolderSharedId(String folderSharedId) throws Exception;
@ -62,8 +68,5 @@ public interface WorkspaceSharingService extends RemoteService {
boolean addAdministratorsByFolderId(String itemId, List<String> listContactLogins) throws Exception;
List<GGroup> getVREList() throws Exception;
List<InfoContactModel> getUsersByKeyword(String keyword) throws Exception;
}

View File

@ -20,6 +20,12 @@ public interface WorkspaceSharingServiceAsync {
.create(WorkspaceSharingService.class);
void getAllContacts(AsyncCallback<List<InfoContactModel>> callback);
void getUsersByKeyword(String keyword, AsyncCallback<List<InfoContactModel>> callback);
void getVREList(AsyncCallback<List<GGroup>> callback);
void getAllContactsByVRE(GGroup gGroup, AsyncCallback<List<InfoContactModel>> callback);
void getListUserSharedByFolderSharedId(String folderSharedId, AsyncCallback<List<InfoContactModel>> callback);
@ -62,8 +68,5 @@ public interface WorkspaceSharingServiceAsync {
void addAdministratorsByFolderId(String itemId, List<String> listContactLogins, AsyncCallback<Boolean> callback);
void getVREList(AsyncCallback<List<GGroup>> callback);
void getUsersByKeyword(String keyword, AsyncCallback<List<InfoContactModel>> callback);
}

View File

@ -285,6 +285,45 @@ public class GWTWorkspaceSharingBuilder {
return listContactsModel;
}
/**
*
* @param info
* Portal Context info
* @return the list of users
* @throws Exception
* Error
*/
public List<InfoContactModel> buildGXTListContactsModelFromUserModel(PortalContextInfo info,GGroup gGroup) throws Exception {
List<GCubeUser> 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<InfoContactModel> listContactsModel = new ArrayList<InfoContactModel>();
logger.trace("List<UserModel> 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<GGroup> getVREList(PortalContextInfo info) throws Exception {

View File

@ -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<InfoContactModel> 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<InfoContactModel> listContactsModel = new ArrayList<InfoContactModel>();
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<InfoContactModel> 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)