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

Reply via email to