package org.ovirt.engine.core.bll.aaa; import java.util.Collection; import java.util.Map; import javax.inject.Inject; import org.ovirt.engine.api.extensions.ExtMap; import org.ovirt.engine.core.aaa.DirectoryUser; import org.ovirt.engine.core.aaa.SsoOAuthServiceUtils; import org.ovirt.engine.core.bll.QueriesCommandBase; import org.ovirt.engine.core.common.queries.DirectoryIdQueryParameters; public class GetDirectoryUserByIdQuery<P extends DirectoryIdQueryParameters> extends QueriesCommandBase<P> { @Inject private DirectoryUtils directoryUtils; public GetDirectoryUserByIdQuery(P parameters) { super(parameters); } @Override protected void executeQueryCommand() { Map<String, Object> response = findDirectoryUserById(); if (!response.containsKey("result")) { getQueryReturnValue().setSucceeded(false); } else { Collection<DirectoryUser> users = directoryUtils.mapPrincipalRecordsToDirectoryUsers( getParameters().getDomain(), (Collection<ExtMap>) response.get("result")); if (!users.isEmpty()) { getQueryReturnValue().setReturnValue(users.iterator().next()); } } } public Map<String, Object> findDirectoryUserById() { return SsoOAuthServiceUtils.findDirectoryUserById( getSessionDataContainer().getSsoAccessToken(getParameters().getSessionId()), getParameters().getDomain(), getParameters().getNamespace(), getParameters().getId(), false, false); } }