Shubhendu Tripathi has uploaded a new change for review.

Change subject: engine: Selecting permissionsb ased on app mode
......................................................................

engine: Selecting permissionsb ased on app mode

Updated the stored procedure to select the list of permissions for a
user based on application mode as well.

Earlier list of permissions applicable for all the application modes
were getting listed for a user.

Change-Id: I6913bcc0c1c400d29c78856db60961376c2a2ca5
Bug-Url: https://bugzilla.redhat.com/1008870
Signed-off-by: Shubhendu Tripathi <[email protected]>
---
M 
backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/PermissionDAODbFacadeImpl.java
M packaging/dbscripts/create_views.sql
M packaging/dbscripts/multi_level_administration_sp.sql
3 files changed, 10 insertions(+), 5 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/13/19613/1

diff --git 
a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/PermissionDAODbFacadeImpl.java
 
b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/PermissionDAODbFacadeImpl.java
index f4d078f..e226e64 100644
--- 
a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/PermissionDAODbFacadeImpl.java
+++ 
b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/PermissionDAODbFacadeImpl.java
@@ -9,6 +9,8 @@
 import org.ovirt.engine.core.common.businessentities.ActionGroup;
 import org.ovirt.engine.core.common.businessentities.RoleType;
 import org.ovirt.engine.core.common.businessentities.permissions;
+import org.ovirt.engine.core.common.config.Config;
+import org.ovirt.engine.core.common.config.ConfigValues;
 import org.ovirt.engine.core.compat.Guid;
 import org.springframework.jdbc.core.RowMapper;
 import org.springframework.jdbc.core.namedparam.MapSqlParameterSource;
@@ -69,10 +71,13 @@
 
     @Override
     public List<permissions> getAllForAdElement(Guid id, Guid userID, boolean 
isFiltered) {
+        Integer appMode = Config.<Integer> 
GetValue(ConfigValues.ApplicationMode);
+
         MapSqlParameterSource parameterSource = 
getCustomMapSqlParameterSource()
                 .addValue("ad_element_id", id).
                 addValue("user_id", userID).
-                addValue("is_filtered", isFiltered);
+                addValue("is_filtered", isFiltered).
+                addValue("app_mode", appMode.intValue());
 
         return getCallsHandler().executeReadList("GetPermissionsByAdElementId",
                 PermissionRowMapper.instance,
diff --git a/packaging/dbscripts/create_views.sql 
b/packaging/dbscripts/create_views.sql
index ddc1331..ade259d 100644
--- a/packaging/dbscripts/create_views.sql
+++ b/packaging/dbscripts/create_views.sql
@@ -802,7 +802,7 @@
 AS
 
 SELECT     permissions.id as id, permissions.role_id as role_id, 
permissions.ad_element_id as ad_element_id, permissions.object_id as object_id, 
permissions.object_type_id as object_type_id,
-              roles.name as role_name, roles.role_type as role_type, 
roles.allows_viewing_children as allows_viewing_children, 
fn_get_entity_name(permissions.object_id,permissions.object_type_id) as 
object_name,
+              roles.name as role_name, roles.role_type as role_type, 
roles.allows_viewing_children as allows_viewing_children, roles.app_mode as 
app_mode, fn_get_entity_name(permissions.object_id,permissions.object_type_id) 
as object_name,
                        fn_get_ad_element_name(permissions.ad_element_id) as 
owner_name
 FROM         permissions INNER JOIN
 roles ON permissions.role_id = roles.id;
diff --git a/packaging/dbscripts/multi_level_administration_sp.sql 
b/packaging/dbscripts/multi_level_administration_sp.sql
index aa150f3..6c69ce8 100644
--- a/packaging/dbscripts/multi_level_administration_sp.sql
+++ b/packaging/dbscripts/multi_level_administration_sp.sql
@@ -102,14 +102,14 @@
 LANGUAGE plpgsql;
 
 
-Create or replace FUNCTION GetPermissionsByAdElementId(v_ad_element_id UUID, 
v_user_id UUID, v_is_filtered BOOLEAN)
+Create or replace FUNCTION GetPermissionsByAdElementId(v_ad_element_id UUID, 
v_user_id UUID, v_is_filtered BOOLEAN, v_app_mode INTEGER)
 RETURNS SETOF permissions_view STABLE
    AS $procedure$
 BEGIN
    RETURN QUERY SELECT *
    FROM permissions_view
-   WHERE
-   (permissions_view.ad_element_id = v_ad_element_id
+   WHERE (permissions_view.app_mode & v_app_mode) > 0
+   AND (permissions_view.ad_element_id = v_ad_element_id
     OR    ad_element_id IN (SELECT * FROM 
getUserAndGroupsById(v_ad_element_id)))
    AND (NOT v_is_filtered OR EXISTS (SELECT 1 FROM 
user_permissions_permissions_view WHERE user_id = v_user_id));
 


-- 
To view, visit http://gerrit.ovirt.org/19613
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I6913bcc0c1c400d29c78856db60961376c2a2ca5
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Shubhendu Tripathi <[email protected]>
_______________________________________________
Engine-patches mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to