diff --git a/pom.xml b/pom.xml
index 22a52e0..1eb60d2 100644
--- a/pom.xml
+++ b/pom.xml
@@ -10,7 +10,7 @@
org.gcube.dvos
usermanagement-core
- 2.4.2-SNAPSHOT
+ 2.5.0-SNAPSHOT
jar
User Management API
diff --git a/src/main/java/org/gcube/vomanagement/usermanagement/impl/LiferayUserManager.java b/src/main/java/org/gcube/vomanagement/usermanagement/impl/LiferayUserManager.java
index 187a801..9e04d82 100644
--- a/src/main/java/org/gcube/vomanagement/usermanagement/impl/LiferayUserManager.java
+++ b/src/main/java/org/gcube/vomanagement/usermanagement/impl/LiferayUserManager.java
@@ -45,6 +45,7 @@ import com.liferay.portal.model.Role;
import com.liferay.portal.model.RoleConstants;
import com.liferay.portal.model.Team;
import com.liferay.portal.model.User;
+import com.liferay.portal.model.UserGroupRole;
import com.liferay.portal.security.auth.PrincipalThreadLocal;
import com.liferay.portal.security.permission.PermissionChecker;
import com.liferay.portal.security.permission.PermissionCheckerFactoryUtil;
@@ -57,6 +58,7 @@ import com.liferay.portal.service.RoleLocalServiceUtil;
import com.liferay.portal.service.RoleServiceUtil;
import com.liferay.portal.service.ServiceContext;
import com.liferay.portal.service.TeamLocalServiceUtil;
+import com.liferay.portal.service.UserGroupRoleLocalServiceUtil;
import com.liferay.portal.service.UserLocalServiceUtil;
import com.liferay.portal.util.PortalUtil;
import com.liferay.portal.webserver.WebServerServletTokenUtil;
@@ -753,24 +755,15 @@ public class LiferayUserManager implements UserManager {
*/
@Override
public List listUsersByGroupAndRole(long groupId, long roleId) throws UserManagementSystemException, RoleRetrievalFault, GroupRetrievalFault, UserRetrievalFault {
- Map> toIterate = listUsersAndRolesByGroup(groupId);
List toReturn = new ArrayList();
- Role askedRole = null;
try {
- askedRole = RoleServiceUtil.getRole(roleId);
- } catch (PortalException e) {
- throw new RoleRetrievalFault("Role not existing (I think you better check) roleId="+roleId, e);
- } catch (SystemException e) {
- e.printStackTrace();
- }
- _log.debug("Asked for role: "+askedRole.getName());
- for (GCubeUser u : toIterate.keySet()) {
- for (GCubeRole role : toIterate.get(u))
- if (role.getRoleId() == roleId) {
- toReturn.add(u);
- break;
- }
- }
+ List listTriplet = UserGroupRoleLocalServiceUtil.getUserGroupRolesByGroupAndRole(groupId, roleId);
+ for (UserGroupRole userGroupRole : listTriplet) {
+ toReturn.add(getUserById(userGroupRole.getUserId()));
+ }
+ } catch (SystemException e1) {
+ e1.printStackTrace();
+ }
return toReturn;
}
/**