Ori Liel has uploaded a new change for review. Change subject: restapi - Fix Display VM Session Info (#894027) ......................................................................
restapi - Fix Display VM Session Info (#894027) Display VM Sesion info was broken due to changes in the way session info is stored in the database. This patch fixes that. Bug-Url: https://bugzilla.redhat.com/894027 Change-Id: I034c93fe0c5037771dc9ed12d64ca5deea10957f Signed-off-by: Ori Liel <ol...@redhat.com> --- A backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetDbUserByUserNameAndDomainQuery.java D backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetDbUserByUserNameQuery.java A backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/GetDbUserByUserNameAndDomainQueryParameters.java M backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/VdcQueryType.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 backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/DbFacadeDAOTest.java M backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/DbUserDAOTest.java M backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendUserResource.java M backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendVmSessionsResource.java M backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendUserResourceTest.java M backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendVmSessionsResourceTest.java M backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/VmMapper.java M backend/manager/modules/restapi/types/src/test/java/org/ovirt/engine/api/restapi/types/VmMapperTest.java M packaging/dbscripts/user_sp.sql 15 files changed, 150 insertions(+), 61 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/06/29506/1 diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetDbUserByUserNameAndDomainQuery.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetDbUserByUserNameAndDomainQuery.java new file mode 100644 index 0000000..601c450 --- /dev/null +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetDbUserByUserNameAndDomainQuery.java @@ -0,0 +1,18 @@ +package org.ovirt.engine.core.bll; + +import org.ovirt.engine.core.common.queries.GetDbUserByUserNameAndDomainQueryParameters; +import org.ovirt.engine.core.dal.dbbroker.DbFacade; + +public class GetDbUserByUserNameAndDomainQuery<P extends GetDbUserByUserNameAndDomainQueryParameters> extends QueriesCommandBase<P> { + + public GetDbUserByUserNameAndDomainQuery(P parameters) { + super(parameters); + } + + @Override + protected void executeQueryCommand() { + getQueryReturnValue().setReturnValue(DbFacade.getInstance() + .getDbUserDao() + .getByUsernameAndDomain(getParameters().getUserName(), getParameters().getDomainName())); + } +} diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetDbUserByUserNameQuery.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetDbUserByUserNameQuery.java deleted file mode 100644 index 1ddb608..0000000 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetDbUserByUserNameQuery.java +++ /dev/null @@ -1,18 +0,0 @@ -package org.ovirt.engine.core.bll; - -import org.ovirt.engine.core.common.queries.NameQueryParameters; -import org.ovirt.engine.core.dal.dbbroker.DbFacade; - -public class GetDbUserByUserNameQuery<P extends NameQueryParameters> extends QueriesCommandBase<P> { - - public GetDbUserByUserNameQuery(P parameters) { - super(parameters); - } - - @Override - protected void executeQueryCommand() { - getQueryReturnValue().setReturnValue(DbFacade.getInstance() - .getDbUserDao() - .getByUsername(getParameters().getName())); - } -} diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/GetDbUserByUserNameAndDomainQueryParameters.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/GetDbUserByUserNameAndDomainQueryParameters.java new file mode 100644 index 0000000..7f7093c --- /dev/null +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/GetDbUserByUserNameAndDomainQueryParameters.java @@ -0,0 +1,40 @@ +package org.ovirt.engine.core.common.queries; + +public class GetDbUserByUserNameAndDomainQueryParameters extends VdcQueryParametersBase { + + public GetDbUserByUserNameAndDomainQueryParameters() { + super(); + } + + public GetDbUserByUserNameAndDomainQueryParameters(String sessionId) { + super(sessionId); + } + + public GetDbUserByUserNameAndDomainQueryParameters(String userName, String domainName) { + super(); + this.userName = userName; + this.domainName = domainName; + } + + private static final long serialVersionUID = 5204792601949266874L; + + + private String userName; + private String domainName; + + public String getUserName() { + return userName; + } + + public void setUserName(String userName) { + this.userName = userName; + } + + public String getDomainName() { + return domainName; + } + + public void setDomainName(String domainName) { + this.domainName = domainName; + } +} diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/VdcQueryType.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/VdcQueryType.java index d937ef6..f698660 100644 --- a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/VdcQueryType.java +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/VdcQueryType.java @@ -150,7 +150,7 @@ GetUserVmsByUserIdAndGroups(VdcQueryAuthType.User), GetAllDbUsers(VdcQueryAuthType.User), GetDbUserByUserId(VdcQueryAuthType.User), - GetDbUserByUserName(VdcQueryAuthType.User), + GetDbUserByUserNameAndDomain(VdcQueryAuthType.User), GetUserBySessionId(VdcQueryAuthType.User), // Directory queries: 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 ccb5a33..e1db8a6 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 @@ -28,7 +28,7 @@ * the username * @return the user */ - DbUser getByUsername(String username); + DbUser getByUsernameAndDomain(String username, String domainName); /** * Retrieves a user by domain name and external identifier. 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 bf247ac..ebbdeed 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 @@ -87,11 +87,12 @@ } @Override - public DbUser getByUsername(String username) { + public DbUser getByUsernameAndDomain(String username, String domainName) { MapSqlParameterSource parameterSource = getCustomMapSqlParameterSource() - .addValue("username", username); + .addValue("username", username) + .addValue("domain", domainName); - return getCallsHandler().executeRead("GetUserByUserName", DbUserRowMapper.instance, parameterSource); + return getCallsHandler().executeRead("GetUserByUserNameAndDomain", DbUserRowMapper.instance, parameterSource); } @Override diff --git a/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/DbFacadeDAOTest.java b/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/DbFacadeDAOTest.java index 4df4141..334e79d 100644 --- a/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/DbFacadeDAOTest.java +++ b/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/DbFacadeDAOTest.java @@ -129,7 +129,9 @@ public void testUpdateLastAdminCheckStatus() { // Getting a nonAdmin user that is defined in the fixtures - DbUser nonAdminUser = dbFacade.getDbUserDao().getByUsername("userport...@testportal.redhat.com"); + DbUser nonAdminUser = + dbFacade.getDbUserDao().getByUsernameAndDomain("userport...@testportal.redhat.com", + "testportal.redhat.com"); assertNotNull(nonAdminUser); assertFalse(nonAdminUser.isAdmin()); diff --git a/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/DbUserDAOTest.java b/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/DbUserDAOTest.java index 2b6f5a91..b25326b 100644 --- a/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/DbUserDAOTest.java +++ b/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/DbUserDAOTest.java @@ -100,7 +100,7 @@ */ @Test public void testGetByUsernameWithInvalidName() { - DbUser result = dao.getByUsername("IdoNoExist"); + DbUser result = dao.getByUsernameAndDomain("IdoNoExist", existingUser.getDomain()); assertNull(result); } @@ -110,7 +110,7 @@ */ @Test public void testGetByUsername() { - DbUser result = dao.getByUsername(existingUser.getLoginName()); + DbUser result = dao.getByUsernameAndDomain(existingUser.getLoginName(), existingUser.getDomain()); assertNotNull(result); assertEquals(existingUser, result); @@ -178,7 +178,7 @@ public void testSave() { dao.save(newUser); - DbUser result = dao.getByUsername(newUser.getLoginName()); + DbUser result = dao.getByUsernameAndDomain(newUser.getLoginName(), newUser.getDomain()); assertEquals(newUser, result); } @@ -215,7 +215,7 @@ public void testSaveOrUpdateNew() { int sizeBeforeSave = dao.getAll().size(); dao.saveOrUpdate(newUser); - DbUser result = dao.getByUsername(newUser.getLoginName()); + DbUser result = dao.getByUsernameAndDomain(newUser.getLoginName(), newUser.getDomain()); int sizeAfterSave = dao.getAll().size(); assertEquals(newUser, result); assertEquals(1, sizeAfterSave - sizeBeforeSave); diff --git a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendUserResource.java b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendUserResource.java index bb8bec5..8442f9c 100644 --- a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendUserResource.java +++ b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendUserResource.java @@ -9,8 +9,8 @@ import org.ovirt.engine.api.resource.AssignedTagsResource; import org.ovirt.engine.api.resource.UserResource; import org.ovirt.engine.core.common.businessentities.DbUser; +import org.ovirt.engine.core.common.queries.GetDbUserByUserNameAndDomainQueryParameters; import org.ovirt.engine.core.common.queries.IdQueryParameters; -import org.ovirt.engine.core.common.queries.NameQueryParameters; import org.ovirt.engine.core.common.queries.VdcQueryType; /** @@ -64,7 +64,9 @@ return model; } - public User getUserByName(String name) { - return performGet(VdcQueryType.GetDbUserByUserName, new NameQueryParameters(name), BaseResource.class); + public User getUserByNameAndDomain(String userName, String domainName) { + return performGet(VdcQueryType.GetDbUserByUserNameAndDomain, + new GetDbUserByUserNameAndDomainQueryParameters(userName, domainName), + BaseResource.class); } } diff --git a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendVmSessionsResource.java b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendVmSessionsResource.java index 248e874..075a48e 100644 --- a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendVmSessionsResource.java +++ b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendVmSessionsResource.java @@ -4,6 +4,7 @@ import javax.ws.rs.PathParam; import javax.ws.rs.core.Response; +import org.ovirt.engine.api.model.Domain; import org.ovirt.engine.api.model.Session; import org.ovirt.engine.api.model.Sessions; import org.ovirt.engine.api.model.User; @@ -38,11 +39,27 @@ for (Session session : sessions.getSessions()) { setSessionId(session); setSessionVmId(vmModel, session); - setSessionUser(session); - addLinks(session, org.ovirt.engine.api.model.VM.class); + // only console user assumed to be an ovirt user, and only an ovirt-user has an ID & href + if (session.isSetConsoleUser() && session.isConsoleUser()) { + addLinksIncludingUser(session); + } else { + addLinks(session, org.ovirt.engine.api.model.VM.class); + } } } return sessions; + } + + /** + * Special handling of adding links to the user and domain of the session. + */ + private void addLinksIncludingUser(Session session) { + String domainName = session.getUser().getDomain().getName(); + addLinks(session, org.ovirt.engine.api.model.VM.class); + session.getUser().setDomain(new Domain()); + session.getUser().getDomain().setName(domainName); + setSessionUser(session); + // setSessionUserDomain(session); } private void setSessionVmId(org.ovirt.engine.api.model.VM vmModel, Session session) { @@ -69,11 +86,13 @@ * inside the user object, inside the session. */ private void setSessionUser(Session session) { - if (session.isSetConsoleUser() && session.isConsoleUser()) { // (only console user assumed to be an ovirt user). - User user = getUserResource().getUserByName(session.getUser().getName()); - session.getUser().setId(user.getId()); - session.getUser().setHref(user.getHref()); - } + User user = + getUserResource().getUserByNameAndDomain(session.getUser().getUserName(), + session.getUser().getDomain().getName()); + session.getUser().setId(user.getId()); + session.getUser().setHref(user.getHref()); + session.getUser().getDomain().setId(user.getDomain().getId()); + session.getUser().getDomain().setHref(user.getDomain().getHref()); } private BackendUserResource getUserResource() { diff --git a/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendUserResourceTest.java b/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendUserResourceTest.java index 684ffe3..37d33b6 100644 --- a/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendUserResourceTest.java +++ b/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendUserResourceTest.java @@ -9,8 +9,8 @@ import org.ovirt.engine.api.model.Group; import org.ovirt.engine.api.model.User; import org.ovirt.engine.core.common.businessentities.DbUser; +import org.ovirt.engine.core.common.queries.GetDbUserByUserNameAndDomainQueryParameters; import org.ovirt.engine.core.common.queries.IdQueryParameters; -import org.ovirt.engine.core.common.queries.NameQueryParameters; import org.ovirt.engine.core.common.queries.VdcQueryType; public class BackendUserResourceTest @@ -61,12 +61,13 @@ @Test public void testGetUserByName() throws Exception { setUriInfo(setUpBasicUriExpectations()); - setUpGetEntityExpectations(VdcQueryType.GetDbUserByUserName, - NameQueryParameters.class, - new String[] { "Name" }, - new Object[] { "admin" }, getEntity(0)); + setUpGetEntityExpectations(VdcQueryType.GetDbUserByUserNameAndDomain, + GetDbUserByUserNameAndDomainQueryParameters.class, + new String[] { "UserName", "DomainName" }, + new Object[] { "admin", "internal" }, + getEntity(0)); control.replay(); - verifyModel(resource.getUserByName("admin"), 0); + verifyModel(resource.getUserByNameAndDomain("admin", "internal"), 0); } protected void setUpGetEntityExpectations() throws Exception { diff --git a/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendVmSessionsResourceTest.java b/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendVmSessionsResourceTest.java index 310e6e4..637d801 100644 --- a/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendVmSessionsResourceTest.java +++ b/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendVmSessionsResourceTest.java @@ -1,6 +1,7 @@ package org.ovirt.engine.api.restapi.resource; import org.junit.Test; +import org.ovirt.engine.api.model.Domain; import org.ovirt.engine.api.model.Session; import org.ovirt.engine.api.model.Sessions; import org.ovirt.engine.api.model.User; @@ -18,7 +19,7 @@ protected VM getEntity(int index) { org.ovirt.engine.core.common.businessentities.VM vm = new org.ovirt.engine.core.common.businessentities.VM(); VmDynamic vmDynamic = new VmDynamic(); - vmDynamic.setConsoleCurrentUserName("admin"); + vmDynamic.setConsoleCurrentUserName("admin@internal"); vmDynamic.setClientIp("1.1.1.1"); vmDynamic.setGuestCurrentUserName("Ori"); vm.setDynamicData(vmDynamic); @@ -38,7 +39,7 @@ @Test public void testList() throws Exception { BackendUserResource userResourceMock = control.createMock(BackendUserResource.class); - expect(userResourceMock.getUserByName("admin")).andReturn(getUser()).anyTimes(); + expect(userResourceMock.getUserByNameAndDomain("admin", "internal")).andReturn(getUser()).anyTimes(); resource.setUserResource(userResourceMock); resource.setUriInfo(setUpBasicUriExpectations()); setUpGetEntityExpectations(VdcQueryType.GetVmByVmId, @@ -52,16 +53,15 @@ assertNotNull(sessions.getSessions().get(1).getVm()); assertNotNull(sessions.getSessions().get(0).getId()); assertNotNull(sessions.getSessions().get(1).getId()); - Session consoleSession = - sessions.getSessions().get(0).getUser().getName().equals("admin") ? sessions.getSessions().get(0) - : sessions.getSessions().get(1); - assertEquals(consoleSession.getUser().getHref(), "/ovirt-engine/api/users/11111111-1111-1111-1111-111111111111"); } private User getUser() { User user = new User(); - user.setName("admin"); + user.setUserName("admin"); user.setId(GUIDS[1].toString()); + Domain domain = new Domain(); + domain.setName("internal"); + user.setDomain(domain); return user; } } diff --git a/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/VmMapper.java b/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/VmMapper.java index 46b0ca8..ee1752e 100644 --- a/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/VmMapper.java +++ b/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/VmMapper.java @@ -1474,11 +1474,16 @@ * protocol used in the session (spice/vnc). */ private static Sessions mapConsoleSession(org.ovirt.engine.core.common.businessentities.VM vm, Sessions sessions) { - String consoleUserName = vm.getConsoleCurentUserName(); + String consoleUserName = vm.getConsoleCurentUserName(); // currently in format user@domain, so needs to be + // parsed. if (consoleUserName != null && !consoleUserName.isEmpty()) { - Session consoleSession = new Session(); + String userName = parseUserName(consoleUserName); + String domainName = parseDomainName(consoleUserName); User consoleUser = new User(); - consoleUser.setName(consoleUserName); + consoleUser.setUserName(userName); + consoleUser.setDomain(new Domain()); + consoleUser.getDomain().setName(domainName); + Session consoleSession = new Session(); consoleSession.setUser(consoleUser); if (vm.getClientIp()!=null && !vm.getClientIp().isEmpty()) { IP ip = new IP(); @@ -1493,6 +1498,25 @@ } /** + * Parse the user name out of the provided string. Expects 'user@domain', but if no '@' found, will assume that + * domain was omitted and that the whole String is the user-name. + */ + private static String parseDomainName(String consoleUserName) { + return consoleUserName.contains("@") ? + consoleUserName.substring(consoleUserName.indexOf("@") + 1, consoleUserName.length()) : null; + } + + /** + * Parse the domain name out of the provided string. Expects 'user@domain'. If no '@' found, will assume that domain + * name was omitted and return null. + */ + private static String parseUserName(String consoleUserName) { + return consoleUserName.contains("@") ? + consoleUserName.substring(0, consoleUserName.indexOf("@")) : + consoleUserName; + } + + /** * This method maps the sessions of users who are connected to the VM, but are not the 'logged-in'/'console' user. * Currently the information that engine supplies about these users is only a string, which contains the name of * only one such user, if exists (the user is not necessarily an ovirt user). In the future the engine may pass @@ -1504,7 +1528,7 @@ if (guestUserName != null && !guestUserName.isEmpty()) { Session guestSession = new Session(); User user = new User(); - user.setName(guestUserName); + user.setUserName(guestUserName); guestSession.setUser(user); // TODO: in the future, map the user-IP and connection protocol as well sessions.getSessions().add(guestSession); diff --git a/backend/manager/modules/restapi/types/src/test/java/org/ovirt/engine/api/restapi/types/VmMapperTest.java b/backend/manager/modules/restapi/types/src/test/java/org/ovirt/engine/api/restapi/types/VmMapperTest.java index 53d4949..bb1ac1b 100644 --- a/backend/manager/modules/restapi/types/src/test/java/org/ovirt/engine/api/restapi/types/VmMapperTest.java +++ b/backend/manager/modules/restapi/types/src/test/java/org/ovirt/engine/api/restapi/types/VmMapperTest.java @@ -579,14 +579,14 @@ assertNotNull(sessions); assertEquals(sessions.getSessions().size(), 2); Session consoleSession = - sessions.getSessions().get(0).getUser().getName().equals("admin") ? sessions.getSessions().get(0) + sessions.getSessions().get(0).getUser().getUserName().equals("admin") ? sessions.getSessions().get(0) : sessions.getSessions().get(1); Session guestSession = - sessions.getSessions().get(0).getUser().getName().equals("Ori") ? sessions.getSessions().get(0) + sessions.getSessions().get(0).getUser().getUserName().equals("Ori") ? sessions.getSessions().get(0) : sessions.getSessions().get(1); - assertEquals(consoleSession.getUser().getName(), "admin"); + assertEquals(consoleSession.getUser().getUserName(), "admin"); assertEquals(consoleSession.getIp().getAddress(), "1.1.1.1"); assertTrue(consoleSession.isConsoleUser()); - assertEquals(guestSession.getUser().getName(), "Ori"); + assertEquals(guestSession.getUser().getUserName(), "Ori"); } } diff --git a/packaging/dbscripts/user_sp.sql b/packaging/dbscripts/user_sp.sql index 04c88f0..5b49e4f 100644 --- a/packaging/dbscripts/user_sp.sql +++ b/packaging/dbscripts/user_sp.sql @@ -187,12 +187,12 @@ -Create or replace FUNCTION GetUserByUserName(v_username VARCHAR(255)) RETURNS SETOF users STABLE +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; + WHERE username = v_username AND domain = v_domain; END; $procedure$ LANGUAGE plpgsql; -- To view, visit http://gerrit.ovirt.org/29506 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I034c93fe0c5037771dc9ed12d64ca5deea10957f Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Ori Liel <ol...@redhat.com> _______________________________________________ Engine-patches mailing list Engine-patches@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-patches