Ravi Nori has uploaded a new change for review. Change subject: core, webadmin: Remove unused columns in Users table ......................................................................
core, webadmin: Remove unused columns in Users table Remove groupds, group_ids and active columns from the users table. Add groupds colum to engine sessions table as it is needed by vdc_users view Change-Id: Id813d965d0ec33035b3cf499a19441df42cc9848 Bug-Url: https://bugzilla.redhat.com/1092744 Signed-off-by: Ravi Nori <rn...@redhat.com> --- M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/aaa/AddUserCommand.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/aaa/LoginBaseCommand.java M backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/EngineSession.java M backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/aaa/DbUser.java M backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/DbUserDAODbFacadeImpl.java M backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/EngineSessionDAODbFacadeImpl.java M backend/manager/modules/dal/src/test/resources/fixtures.xml M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/users/UserGeneralModel.java M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationConstants.java M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/user/SubTabUserGeneralView.java M packaging/dbscripts/create_functions.sql M packaging/dbscripts/create_views.sql A packaging/dbscripts/upgrade/03_06_0600_remove_user_groupids_column.sql M packaging/dbscripts/user_sp.sql 14 files changed, 51 insertions(+), 107 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/08/35908/1 diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/aaa/AddUserCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/aaa/AddUserCommand.java index bb9e480..edf8c90 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/aaa/AddUserCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/aaa/AddUserCommand.java @@ -42,15 +42,12 @@ DbUser userFromDb = DbFacade.getInstance().getDbUserDao().getByExternalId(user.getDomain(), user.getExternalId()); if (userFromDb == null) { - if (user.isActive()) { - DbFacade.getInstance().getDbUserDao().save(user); - } + DbFacade.getInstance().getDbUserDao().save(user); } else { user.setId(userFromDb.getId()); DbFacade.getInstance().getDbUserDao().update(user); } setActionReturnValue(user.getId()); - setSucceeded(user.isActive()); } @Override diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/aaa/LoginBaseCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/aaa/LoginBaseCommand.java index e261156..b9d395b 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/aaa/LoginBaseCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/aaa/LoginBaseCommand.java @@ -257,12 +257,6 @@ // Check that the user exists in the database, if it doesn't exist then we need to add it now: DbUser dbUser = DirectoryUtils.mapPrincipalRecordToDbUser(AuthzUtils.getName(profile.getAuthz()), principalRecord); - if (!dbUser.isActive()) { - dbUser.setActive(true); - log.info("The user '{}' was reactivated as it was found in authz provider '{}' during login attempt.", - dbUser.getLoginName(), - dbUser.getDomain()); - } getDbUserDAO().saveOrUpdate(dbUser); // Check login permissions. We do it here and not via the diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/EngineSession.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/EngineSession.java index c000f67..109941b 100644 --- a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/EngineSession.java +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/EngineSession.java @@ -6,6 +6,7 @@ import javax.validation.constraints.Size; import java.io.Serializable; +import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.HashSet; @@ -26,12 +27,18 @@ private Collection<Guid> groupIds; - public EngineSession() {} + private Collection<String> groupNames; + + public EngineSession() { + groupNames = Collections.emptyList(); + groupIds = Collections.emptyList(); + } public EngineSession(DbUser dbUser) { setUserId(dbUser.getId()); setUserName(dbUser.getLoginName()); setGroupIds(dbUser.getGroupIds()); + setGroupNames(dbUser.getGroupNames()); } /** @@ -79,6 +86,14 @@ return new HashSet<Guid>(groupIds); } + public Collection<String> getGroupNames() { + return new ArrayList<String>(groupNames); + } + + public void setGroupNames(Collection<String> value) { + groupNames = new HashSet<String>(value); + } + public void setGroupIds(Collection<Guid> groupIds) { this.groupIds = groupIds; } diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/aaa/DbUser.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/aaa/DbUser.java index d2de0f8..f585408 100644 --- a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/aaa/DbUser.java +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/aaa/DbUser.java @@ -56,12 +56,6 @@ private String note; /** - * This flag indicates if the user was available in the directory the last time that it was checked, so {@code true} - * means it was available and {@code false} means it wasn't. - */ - private boolean active; - - /** * GUI flag only. Do not use for internal logic. The sole purpose of * calculating this field is for the GUI user to understand who is admin in * a snap on the user grid. @@ -95,7 +89,6 @@ lastName = directoryUser.getLastName(); department = directoryUser.getDepartment(); email = directoryUser.getEmail(); - active = true; role = ""; note = ""; groupNames = new HashSet<String>(); @@ -200,14 +193,6 @@ role = value; } - public boolean isActive() { - return active; - } - - public void setActive(boolean value) { - active = value; - } - public boolean isGroup() { return loginName == null || loginName.trim().isEmpty(); } @@ -245,12 +230,10 @@ result = prime * result + ((domain == null) ? 0 : domain.hashCode()); result = prime * result + ((namespace == null) ? 0 : namespace.hashCode()); result = prime * result + ((email == null) ? 0 : email.hashCode()); - result = prime * result + ((groupNames == null) ? 0 : groupNames.hashCode()); result = prime * result + (isAdmin ? 1231 : 1237); result = prime * result + ((firstName == null) ? 0 : firstName.hashCode()); result = prime * result + ((note == null) ? 0 : note.hashCode()); result = prime * result + ((role == null) ? 0 : role.hashCode()); - result = prime * result + (active ? 1231 : 1237); result = prime * result + ((lastName == null) ? 0 : lastName.hashCode()); result = prime * result + ((loginName == null) ? 0 : loginName.hashCode()); return result; @@ -273,12 +256,10 @@ && ObjectUtils.objectsEqual(domain, other.domain) && ObjectUtils.objectsEqual(namespace, other.namespace) && ObjectUtils.objectsEqual(email, other.email) - && ObjectUtils.objectsEqual(groupNames, other.groupNames) && isAdmin == other.isAdmin && ObjectUtils.objectsEqual(firstName, other.firstName) && ObjectUtils.objectsEqual(note, other.note) && ObjectUtils.objectsEqual(role, other.role) - && active == other.active && ObjectUtils.objectsEqual(lastName, other.lastName) && ObjectUtils.objectsEqual(loginName, other.loginName); 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 30bd069..569a301 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 @@ -2,11 +2,9 @@ import java.sql.ResultSet; import java.sql.SQLException; -import java.util.Arrays; import java.util.LinkedList; import java.util.List; -import org.apache.commons.lang.StringUtils; import org.ovirt.engine.core.common.businessentities.aaa.DbUser; import org.ovirt.engine.core.compat.Guid; import org.ovirt.engine.core.dal.dbbroker.CustomMapSqlParameterSource; @@ -29,17 +27,14 @@ entity.setDepartment(rs.getString("department")); entity.setDomain(rs.getString("domain")); entity.setEmail(rs.getString("email")); - entity.setGroupNames(new LinkedList<String>(Arrays.asList(StringUtils.split(rs.getString("groups"), ',')))); entity.setFirstName(rs.getString("name")); entity.setNote(rs.getString("note")); entity.setNote(rs.getString("note")); entity.setRole(rs.getString("role")); - entity.setActive(rs.getBoolean("active")); entity.setLastName(rs.getString("surname")); entity.setId(getGuidDefaultEmpty(rs, "user_id")); entity.setLoginName(rs.getString("username")); entity.setAdmin(rs.getBoolean("last_admin_check_status")); - entity.setGroupIds(convertToGuidList(rs.getString("group_ids"), ',')); entity.setExternalId(rs.getString("external_id")); entity.setNamespace(rs.getString("namespace")); return entity; @@ -64,16 +59,13 @@ addValue("department", user.getDepartment()); addValue("domain", user.getDomain()); addValue("email", user.getEmail()); - addValue("groups", StringUtils.join(user.getGroupNames(), ",")); addValue("name", user.getFirstName()); addValue("note", user.getNote()); addValue("role", user.getRole()); - addValue("active", user.isActive()); addValue("surname", user.getLastName()); addValue("user_id", user.getId()); addValue("username", user.getLoginName()); addValue("last_admin_check_status", user.isAdmin()); - addValue("group_ids", StringUtils.join(user.getGroupIds(), ",")); addValue("external_id", user.getExternalId()); addValue("namespace", user.getNamespace()); } diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/EngineSessionDAODbFacadeImpl.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/EngineSessionDAODbFacadeImpl.java index eb81a4d..c5b1389 100644 --- a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/EngineSessionDAODbFacadeImpl.java +++ b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/EngineSessionDAODbFacadeImpl.java @@ -12,6 +12,9 @@ import java.sql.ResultSet; import java.sql.SQLException; +import java.util.Arrays; +import java.util.Collection; +import java.util.Collections; import java.util.LinkedList; /** @@ -31,6 +34,7 @@ session.setEngineSessionId(rs.getString("engine_session_id")); session.setUserId(getGuidDefaultEmpty(rs, "user_id")); session.setUserName(rs.getString("user_name")); + session.setGroupNames(convertToStringList(rs.getString("groups"), ',')); session.setGroupIds(convertToGuidList(rs.getString("group_ids"), ',')); session.setRoleIds(convertToGuidList(rs.getString("role_ids"), ',')); return session; @@ -45,6 +49,10 @@ } return results; } + + private Collection<String> convertToStringList(String str, char delimiter) { + return str == null ? Collections.<String>emptyList() :Arrays.asList(StringUtils.split(str, delimiter)); + } } private static class EngineSessionParameterSource extends CustomMapSqlParameterSource { @@ -55,6 +63,7 @@ addValue("engine_session_id", session.getEngineSessionId()); addValue("user_id", session.getUserId()); addValue("user_name", session.getUserName()); + addValue("groups", StringUtils.join(session.getGroupNames(), ",")); addValue("group_ids", StringUtils.join(session.getGroupIds(), ",")); addValue("role_ids", StringUtils.join(session.getRoleIds(), ",")); } diff --git a/backend/manager/modules/dal/src/test/resources/fixtures.xml b/backend/manager/modules/dal/src/test/resources/fixtures.xml index e0ebcc2..283f451 100644 --- a/backend/manager/modules/dal/src/test/resources/fixtures.xml +++ b/backend/manager/modules/dal/src/test/resources/fixtures.xml @@ -4889,14 +4889,11 @@ <column>surname</column> <column>domain</column> <column>username</column> - <column>groups</column> <column>department</column> <column>role</column> <column>email</column> <column>note</column> - <column>active</column> <column>last_admin_check_status</column> - <column>group_ids</column> <column>namespace</column> <row> <value>9bf7c640-b620-456f-a550-0348f366544a</value> @@ -4905,14 +4902,11 @@ <null /> <value>testportal.redhat.com</value> <value>userport...@testportal.redhat.com</value> - <value>qa-membersgr...@testportal.redhat.com/test-all-users</value> <null /> <null /> <null /> <null /> - <value>true</value> <value>0</value> - <value>35487601-05ef-43b0-932d-8663ea4c9495,fa63c7e0-d9d4-492f-9e4e-6ed8c4719364</value> <value>*</value> </row> <row> @@ -4922,14 +4916,11 @@ <null /> <value>testportal.redhat.com</value> <value>userport...@testportal.redhat.com</value> - <value>qa-membersgr...@testportal.redhat.com/test-all-users,qb-membersgr...@testportal.redhat.com/test-all-users,qc-membersgr...@testportal.redhat.com/test-all-users,qd-membersgr...@testportal.redhat.com/test-all-users,qe-membersgr...@testportal.redhat.com/test-all-users,qf-membersgr...@testportal.redhat.com/test-all-users,qg-membersgr...@testportal.redhat.com/test-all-users,qh-membersgr...@testportal.redhat.com/test-all-users,qi-membersgr...@testportal.redhat.com/test-all-users</value> <null /> <null /> <null /> <null /> - <value>true</value> <value>0</value> - <value>26df4393-659b-4b8a-b0f6-3ee94d32e82f,08963ba9-b1c8-498d-989f-75cf8142eab7</value> <value>*</value> </row> </table> diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/users/UserGeneralModel.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/users/UserGeneralModel.java index 12e9528..18c1e86 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/users/UserGeneralModel.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/users/UserGeneralModel.java @@ -49,22 +49,6 @@ } } - private boolean active; - - public boolean isActive() - { - return active; - } - - public void setActive(boolean value) - { - if (active != value) - { - active = value; - onPropertyChanged(new PropertyChangedEventArgs("Active")); //$NON-NLS-1$ - } - } - @Override protected void onEntityChanged() { @@ -90,6 +74,5 @@ setDomain(user.getDomain()); setEmail(user.getEmail()); - setActive(user.isActive()); } } diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationConstants.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationConstants.java index 5a4629f..f02ec4f 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationConstants.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationConstants.java @@ -1953,9 +1953,6 @@ @DefaultStringValue("Inherited From") String inheritedFromUser(); - @DefaultStringValue("Active") - String activeUserGeneral(); - @DefaultStringValue("E-mail") String emailUserGeneral(); diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/user/SubTabUserGeneralView.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/user/SubTabUserGeneralView.java index 38207d5..f9418e4 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/user/SubTabUserGeneralView.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/user/SubTabUserGeneralView.java @@ -9,7 +9,6 @@ import org.ovirt.engine.ui.common.widget.form.FormBuilder; import org.ovirt.engine.ui.common.widget.form.FormItem; import org.ovirt.engine.ui.common.widget.form.GeneralFormPanel; -import org.ovirt.engine.ui.common.widget.label.BooleanLabel; import org.ovirt.engine.ui.common.widget.label.TextBoxLabel; import org.ovirt.engine.ui.uicommonweb.models.users.UserGeneralModel; import org.ovirt.engine.ui.uicommonweb.models.users.UserListModel; @@ -38,8 +37,6 @@ TextBoxLabel domain = new TextBoxLabel(); - BooleanLabel active = new BooleanLabel(); - TextBoxLabel email = new TextBoxLabel(); @UiField(provided = true) @@ -63,12 +60,6 @@ formBuilder = new FormBuilder(formPanel, 1, 3); formBuilder.addFormItem(new FormItem(constants.authz(), domain, 0, 0)); - formBuilder.addFormItem(new FormItem(constants.activeUserGeneral(), active, 1, 0) { - @Override - public boolean getIsAvailable() { - return isUserElement(getDetailModel()); - } - }); formBuilder.addFormItem(new FormItem(constants.emailUserGeneral(), email, 2, 0) { @Override public boolean getIsAvailable() { diff --git a/packaging/dbscripts/create_functions.sql b/packaging/dbscripts/create_functions.sql index 0f62bd4..d56fd95 100644 --- a/packaging/dbscripts/create_functions.sql +++ b/packaging/dbscripts/create_functions.sql @@ -109,11 +109,11 @@ FROM permissions INNER JOIN ( -- get all groups of admin users - SELECT ad_groups.id group_id, users.user_id - FROM ad_groups, users + SELECT ad_groups.id group_id, engine_sessions.user_id + FROM ad_groups, engine_sessions WHERE ad_groups.id IN - (SELECT * FROM fnsplitteruuid(users.group_ids)) - AND users.user_id = v_userId ) temp + (SELECT * FROM fnsplitteruuid(engine_sessions.group_ids)) + AND engine_sessions.user_id = v_userId ) temp ON permissions.ad_element_id = temp.group_id; END; $function$ @@ -675,8 +675,8 @@ AS $function$ BEGIN RETURN QUERY - select ID from ad_groups,users where users.user_id = v_id - and ad_groups.id in(select * from fnsplitteruuid(users.group_ids)) + select ad_groups.ID from ad_groups,engine_sessions where engine_sessions.user_id = v_id + and ad_groups.id in(select * from fnsplitteruuid(engine_sessions.group_ids)) UNION select v_id UNION diff --git a/packaging/dbscripts/create_views.sql b/packaging/dbscripts/create_views.sql index e551802..8b761ad 100644 --- a/packaging/dbscripts/create_views.sql +++ b/packaging/dbscripts/create_views.sql @@ -889,11 +889,12 @@ CREATE OR REPLACE VIEW vdc_users AS -SELECT 'user' as user_group, users_1.name as name, users_1.user_id as user_id, users_1.surname as surname, users_1.domain as domain, users_1.username as username, users_1.groups as groups, users_1.department as department, +SELECT 'user' as user_group, users_1.name as name, users_1.user_id as user_id, users_1.surname as surname, users_1.domain as domain, users_1.username as username, engine_sessions.groups as groups, users_1.department as department, users_1.role as role, users_1.email as email, users_1.note as note, users_1.active as active, 0 as vm_admin, - users_1.last_admin_check_status as last_admin_check_status, users_1.group_ids as group_ids, + users_1.last_admin_check_status as last_admin_check_status, engine_sessions.group_ids as group_ids, users_1.external_id as external_id, users_1.namespace as namespace -FROM users AS users_1 +FROM users AS users_1, engine_sessions +WHERE users_1.user_id = engine_sessions.user_id UNION SELECT 'group' as user_group, ad_groups.name as name, ad_groups.id as id, '' as surname, ad_groups.domain as domain, '' as username, '' as groups, '' as department, '' as role, '' as email, '' as note, true as active, 1 as vm_admin, null as last_admin_check_status, '' as group_ids, diff --git a/packaging/dbscripts/upgrade/03_06_0600_remove_user_groupids_column.sql b/packaging/dbscripts/upgrade/03_06_0600_remove_user_groupids_column.sql new file mode 100644 index 0000000..1c92b96 --- /dev/null +++ b/packaging/dbscripts/upgrade/03_06_0600_remove_user_groupids_column.sql @@ -0,0 +1,6 @@ +-- Remove the group, group ids column from the users table +-- Add groupds to engine_sessions table + +select fn_db_add_column('engine_sessions', 'groups', 'text'); +select fn_db_drop_column('users', 'groups'); +select fn_db_drop_column('users', 'group_ids'); diff --git a/packaging/dbscripts/user_sp.sql b/packaging/dbscripts/user_sp.sql index e71a2a5..23d721d 100644 --- a/packaging/dbscripts/user_sp.sql +++ b/packaging/dbscripts/user_sp.sql @@ -12,22 +12,19 @@ Create or replace FUNCTION InsertUser(v_department VARCHAR(255) , v_domain VARCHAR(255), v_email VARCHAR(255) , - v_groups VARCHAR, v_name VARCHAR(255) , v_note VARCHAR(255) , v_role VARCHAR(255) , - v_active BOOLEAN, v_surname VARCHAR(255) , v_user_id UUID, v_username VARCHAR(255), - v_group_ids VARCHAR(2048), v_external_id TEXT, v_namespace VARCHAR(2048)) RETURNS VOID AS $procedure$ BEGIN -INSERT INTO users(department, domain, email, groups, name, note, role, active, surname, user_id, username, group_ids, external_id,namespace) - VALUES(v_department, v_domain, v_email, v_groups, v_name, v_note, v_role, v_active, v_surname, v_user_id, v_username, v_group_ids, v_external_id, v_namespace); +INSERT INTO users(department, domain, email, name, note, role, surname, user_id, username, external_id,namespace) + VALUES(v_department, v_domain, v_email, v_name, v_note, v_role, v_surname, v_user_id, v_username, v_external_id, v_namespace); END; $procedure$ LANGUAGE plpgsql; @@ -35,15 +32,12 @@ v_department VARCHAR(255) , v_domain VARCHAR(255), v_email VARCHAR(255) , - v_groups VARCHAR(4000), v_name VARCHAR(255) , v_note VARCHAR(255) , v_role VARCHAR(255) , - v_active BOOLEAN, v_surname VARCHAR(255) , v_user_id UUID, v_username VARCHAR(255), - v_group_ids VARCHAR(2048), v_external_id TEXT, v_namespace VARCHAR(2048)) RETURNS INTEGER @@ -55,10 +49,9 @@ BEGIN UPDATE users SET department = v_department,domain = v_domain, - email = v_email,groups = v_groups,name = v_name,note = v_note, - role = v_role,active = v_active,surname = v_surname, + email = v_email,name = v_name,note = v_note, + role = v_role,surname = v_surname, username = v_username, - group_ids = v_group_ids, external_id = v_external_id, namespace = v_namespace, _update_date = CURRENT_TIMESTAMP @@ -75,16 +68,13 @@ v_department VARCHAR(255) , v_domain VARCHAR(255), v_email VARCHAR(255) , - v_groups VARCHAR(4000), v_name VARCHAR(255) , v_note VARCHAR(255) , v_role VARCHAR(255) , - v_active BOOLEAN, v_surname VARCHAR(255) , v_user_id UUID, v_username VARCHAR(255), v_last_admin_check_status BOOLEAN, - v_group_ids VARCHAR(2048), v_external_id TEXT, v_namespace VARCHAR(2048)) RETURNS VOID @@ -92,7 +82,7 @@ --The [users] table doesn't have a timestamp column. Optimistic concurrency logic cannot be generated AS $procedure$ BEGIN - PERFORM UpdateUserImpl(v_department, v_domain, v_email, v_groups, v_name, v_note, v_role, v_active, v_surname, v_user_id, v_username, v_group_ids, v_external_id, v_namespace); + PERFORM UpdateUserImpl(v_department, v_domain, v_email, v_name, v_note, v_role, v_surname, v_user_id, v_username, v_external_id, v_namespace); UPDATE users SET last_admin_check_status = v_last_admin_check_status WHERE domain = v_domain AND external_id = v_external_id; @@ -103,15 +93,12 @@ v_department VARCHAR(255) , v_domain VARCHAR(255), v_email VARCHAR(255) , - v_groups VARCHAR, v_name VARCHAR(255) , v_note VARCHAR(255) , v_role VARCHAR(255) , - v_active BOOLEAN, v_surname VARCHAR(255) , v_user_id UUID, v_username VARCHAR(255), - v_group_ids VARCHAR(2048), v_external_id TEXT, v_namespace VARCHAR(2048)) RETURNS VOID @@ -119,9 +106,9 @@ DECLARE updated_rows INT; BEGIN - SELECT UpdateUserImpl(v_department, v_domain, v_email, v_groups, v_name, v_note, v_role, v_active, v_surname, v_user_id, v_username, v_group_ids, v_external_id, v_namespace) into updated_rows; + SELECT UpdateUserImpl(v_department, v_domain, v_email, v_name, v_note, v_role, v_surname, v_user_id, v_username, v_external_id, v_namespace) into updated_rows; if (updated_rows = 0) THEN - PERFORM InsertUser(v_department, v_domain, v_email, v_groups, v_name, v_note, v_role, v_active, v_surname, v_user_id, v_username, v_group_ids, v_external_id, v_namespace); + PERFORM InsertUser(v_department, v_domain, v_email, v_name, v_note, v_role, v_surname, v_user_id, v_username, v_external_id, v_namespace); End If; END; $procedure$ LANGUAGE plpgsql; @@ -234,8 +221,8 @@ v_id := CAST(v_tempId AS UUID); select count(*) INTO v_result from users where user_id in(select ad_element_id as user_id from permissions,roles where permissions.role_id = roles.id - and ad_element_id in((select id from ad_groups,users where users.user_id = v_id - and ad_groups.id in(select * from fnsplitteruuid(users.group_ids)) + and ad_element_id in((select ad_groups.id from ad_groups,engine_sessions where engine_sessions.user_id = v_id + and ad_groups.id in(select * from fnsplitteruuid(engine_sessions.group_ids)) union select v_id)) and (roles.role_type = 1 or permissions.role_id = '00000000-0000-0000-0000-000000000001')); -- To view, visit http://gerrit.ovirt.org/35908 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Id813d965d0ec33035b3cf499a19441df42cc9848 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Ravi Nori <rn...@redhat.com> _______________________________________________ Engine-patches mailing list Engine-patches@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-patches