Yair Zaslavsky has uploaded a new change for review. Change subject: core: Fix admin@internal login ......................................................................
core: Fix admin@internal login This fixes InternalBrokerUtils to query for users not only by user name but also domain. This will allow proper login in case there are several users with the same name, but in different domains Bug-Url: https://bugzilla.redhat.com/1095420 Change-Id: Ifb2455380242a7b409dd8ea0376e049127996d09 Signed-off-by: Yair Zaslavsky <[email protected]> --- M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/InternalBrokerUtils.java M backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/DbUserDAO.java M backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/DbUserDAODbFacadeImpl.java M packaging/dbscripts/user_sp.sql 4 files changed, 29 insertions(+), 1 deletion(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/74/27574/1 diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/InternalBrokerUtils.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/InternalBrokerUtils.java index bd91684..b3f3889 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/InternalBrokerUtils.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/InternalBrokerUtils.java @@ -40,7 +40,7 @@ public static LdapUser getUserByUPN(String userName) { LdapUser retVal = null; - DbUser dbUser = getDbUserDAO().getByUsername(userName); + DbUser dbUser = getDbUserDAO().getByUsernameAndDomain(userName, "internal"); if (dbUser != null) { retVal = new LdapUser(dbUser); } diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/DbUserDAO.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/DbUserDAO.java index f674ac2..295f7c8 100644 --- a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/DbUserDAO.java +++ b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/DbUserDAO.java @@ -32,6 +32,14 @@ DbUser getByUsername(String username); /** + * Retriens a user by username and domain + * @param username username of the user + * @param domain domain of the user + * @return + */ + DbUser getByUsernameAndDomain(String username, String domain); + + /** * Retrieves a user by domain name and external identifier. * * @param domain the name of the domain diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/DbUserDAODbFacadeImpl.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/DbUserDAODbFacadeImpl.java index 1173784..26d63a3 100644 --- a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/DbUserDAODbFacadeImpl.java +++ b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/DbUserDAODbFacadeImpl.java @@ -85,6 +85,16 @@ } @Override + public DbUser getByUsernameAndDomain(String username, String domain) { + MapSqlParameterSource parameterSource = getCustomMapSqlParameterSource() + .addValue("username", username) + .addValue("domain", domain); + + return getCallsHandler().executeRead("GetUserByUserNameAndDomain", DbUserRowMapper.instance, parameterSource); + } + + + @Override public DbUser getByExternalId(String domain, ExternalId externalId) { MapSqlParameterSource parameterSource = getCustomMapSqlParameterSource() .addValue("domain", domain) diff --git a/packaging/dbscripts/user_sp.sql b/packaging/dbscripts/user_sp.sql index e14a636..1d7784f 100644 --- a/packaging/dbscripts/user_sp.sql +++ b/packaging/dbscripts/user_sp.sql @@ -140,6 +140,16 @@ LANGUAGE plpgsql; +Create or replace FUNCTION GetUserByUserNameAndDomain(v_username VARCHAR(255), v_domain VARCHAR(255)) RETURNS SETOF users STABLE + AS $procedure$ +BEGIN + RETURN QUERY SELECT users.* + FROM users + WHERE username = v_username AND domain = v_domain; +END; $procedure$ +LANGUAGE plpgsql; + + Create or replace FUNCTION GetUsersByVmGuid(v_vm_guid UUID) RETURNS SETOF users STABLE -- To view, visit http://gerrit.ovirt.org/27574 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Ifb2455380242a7b409dd8ea0376e049127996d09 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: ovirt-engine-3.4 Gerrit-Owner: Yair Zaslavsky <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
