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

Reply via email to