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; } /**