package org.ovirt.engine.core.bll.adbroker; import java.util.List; import org.ovirt.engine.core.common.businessentities.AdUser; import org.ovirt.engine.core.compat.Guid; // // JTODO - this needs testing -- Livnat // public class LdapGetAdUserByUserIdCommand extends LdapWithConfiguredCredentialsCommandBase { private Guid getUserId() { return ((LdapSearchByIdParameters) getParameters()).getId(); } public LdapGetAdUserByUserIdCommand(LdapSearchByIdParameters parameters) { super(parameters); } @Override protected void executeQuery(DirectorySearcher directorySearcher) { AdUser user; LdapQueryData queryData = new LdapQueryDataImpl(); queryData.setFilterParameters(new Object[] { getUserId() }); queryData.setLdapQueryType(LdapQueryType.getUserByGuid); queryData.setDomain(getDomain()); Object searchResult = directorySearcher.FindOne(queryData); user = populateUserData((AdUser) searchResult, getDomain()); if (user != null) { GroupsDNQueryGenerator generator = createGroupsGeneratorForUser(user); List<LdapQueryData> partialQueries = generator.getLdapQueriesData(); for (LdapQueryData partialQuery : partialQueries) { PopulateGroup(partialQuery, getDomain(), user.getGroups(), getLoginName(), getPassword()); } } setReturnValue(user); setSucceeded(true); } }