Ravi Nori has uploaded a new change for review. Change subject: engine : Retrieve user groups from directory server ......................................................................
engine : Retrieve user groups from directory server When listing users/user details using rest api the user groups should be included in the data returned from backend. Change-Id: I0ec0af970f07dbbee943f2879a93ca61b1bccf94 Bug-Url: https://bugzilla.redhat.com/1092744 Signed-off-by: Ravi Nori <[email protected]> --- M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/SearchQuery.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/aaa/GetDbUserByUserIdQuery.java A backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/utils/UserGroupUtil.java 3 files changed, 44 insertions(+), 3 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/83/36083/1 diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/SearchQuery.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/SearchQuery.java index e680d7e..09995f2 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/SearchQuery.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/SearchQuery.java @@ -13,6 +13,7 @@ import org.ovirt.engine.core.aaa.DirectoryUser; import org.ovirt.engine.core.bll.aaa.DirectoryUtils; import org.ovirt.engine.core.bll.quota.QuotaManager; +import org.ovirt.engine.core.bll.utils.UserGroupUtil; import org.ovirt.engine.core.common.businessentities.AuditLog; import org.ovirt.engine.core.common.businessentities.Disk; import org.ovirt.engine.core.common.businessentities.IVdcQueryable; @@ -78,7 +79,7 @@ break; } case DBUser: { - returnValue = searchDbUsers(); + returnValue = UserGroupUtil.retrieveUserAdGroups(searchDbUsers()); break; } case DBGroup: { diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/aaa/GetDbUserByUserIdQuery.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/aaa/GetDbUserByUserIdQuery.java index 2b286a6..54ce3da 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/aaa/GetDbUserByUserIdQuery.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/aaa/GetDbUserByUserIdQuery.java @@ -1,6 +1,7 @@ package org.ovirt.engine.core.bll.aaa; import org.ovirt.engine.core.bll.QueriesCommandBase; +import org.ovirt.engine.core.bll.utils.UserGroupUtil; import org.ovirt.engine.core.common.queries.IdQueryParameters; import org.ovirt.engine.core.dal.dbbroker.DbFacade; @@ -13,7 +14,7 @@ @Override protected void executeQueryCommand() { getQueryReturnValue().setReturnValue( - DbFacade.getInstance().getDbUserDao() - .get((getParameters()).getId(), getParameters().isFiltered())); + UserGroupUtil.retrieveUserAdGroups(DbFacade.getInstance().getDbUserDao() + .get((getParameters()).getId(), getParameters().isFiltered()))); } } diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/utils/UserGroupUtil.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/utils/UserGroupUtil.java new file mode 100644 index 0000000..2a7c1f9 --- /dev/null +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/utils/UserGroupUtil.java @@ -0,0 +1,39 @@ +package org.ovirt.engine.core.bll.utils; + +import org.ovirt.engine.core.bll.Backend; +import org.ovirt.engine.core.common.businessentities.aaa.AuthzGroup; +import org.ovirt.engine.core.common.businessentities.aaa.DbUser; +import org.ovirt.engine.core.common.queries.IdQueryParameters; +import org.ovirt.engine.core.common.queries.VdcQueryReturnValue; +import org.ovirt.engine.core.common.queries.VdcQueryType; + +import java.util.Collection; +import java.util.List; +import java.util.Set; +import java.util.TreeSet; + +public class UserGroupUtil { + + public static List<DbUser> retrieveUserAdGroups(List<DbUser> dbUsers) { + for (DbUser dbUser : dbUsers) { + retrieveUserAdGroups(dbUser); + } + return dbUsers; + } + + public static DbUser retrieveUserAdGroups(DbUser dbUser) { + if (!dbUser.getDomain().equals("internal")) { + VdcQueryReturnValue retVal = Backend.getInstance().runInternalQuery( + VdcQueryType.GetAuthzGroupsByUserId, + new IdQueryParameters(dbUser.getId())); + if (retVal.getSucceeded()) { + Set<String> groupNames = new TreeSet<>(); + for (AuthzGroup group : (Collection<AuthzGroup>) retVal.getReturnValue()) { + groupNames.add(group.getName()); + } + dbUser.setGroupNames(groupNames); + } + } + return dbUser; + } +} -- To view, visit http://gerrit.ovirt.org/36083 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I0ec0af970f07dbbee943f2879a93ca61b1bccf94 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Ravi Nori <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
