Darshan N has uploaded a new change for review.

Change subject: engine: Selecting permissions based on app mode
......................................................................

engine: Selecting permissions based on app mode

Updated procedures getAllForEntity and getTreeForEntity to
list permissions based on application mode as well.

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

Change-Id: I7d2d7f1c3d37ecfb66d0965bb0701f7ced6af84d
https://bugzilla.redhat.com/show_bug.cgi?id=1031899
Signed-off-by: ndarshan <dnara...@redhat.com>
---
M 
backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/PermissionDAODbFacadeImpl.java
M packaging/dbscripts/multi_level_administration_sp.sql
2 files changed, 14 insertions(+), 6 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/32/21532/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 0b65945..cbb0d1b 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
@@ -133,8 +133,11 @@
 
     @Override
     public List<permissions> getAllForEntity(Guid id, Guid userID, boolean 
isFiltered) {
+        Integer appMode = Config.<Integer> 
GetValue(ConfigValues.ApplicationMode);
+
         MapSqlParameterSource parameterSource = 
getCustomMapSqlParameterSource()
-                .addValue("id", id).addValue("user_id", 
userID).addValue("is_filtered", isFiltered);
+                .addValue("id", id).addValue("user_id", 
userID).addValue("is_filtered", isFiltered)
+                .addValue("app_mode", appMode.intValue());
         return getCallsHandler().executeReadList("GetPermissionsByEntityId",
                 PermissionRowMapper.instance,
                 parameterSource);
@@ -147,12 +150,15 @@
 
     @Override
     public List<permissions> getTreeForEntity(Guid id, VdcObjectType type, 
Guid userID, boolean isFiltered) {
+        Integer appMode = Config.<Integer> 
GetValue(ConfigValues.ApplicationMode);
+
         MapSqlParameterSource parameterSource =
                 getCustomMapSqlParameterSource()
                         .addValue("id", id)
                         .addValue("object_type_id", type.getValue())
                         .addValue("user_id", userID)
-                        .addValue("is_filtered", isFiltered);
+                        .addValue("is_filtered", isFiltered)
+                        .addValue("app_mode", appMode.intValue());
         return 
getCallsHandler().executeReadList("GetPermissionsTreeByEntityId",
                 PermissionRowMapper.instance,
                 parameterSource);
diff --git a/packaging/dbscripts/multi_level_administration_sp.sql 
b/packaging/dbscripts/multi_level_administration_sp.sql
index 6c69ce8..695f819 100644
--- a/packaging/dbscripts/multi_level_administration_sp.sql
+++ b/packaging/dbscripts/multi_level_administration_sp.sql
@@ -454,7 +454,7 @@
 
 
 
-Create or replace FUNCTION GetPermissionsByEntityId(v_id UUID, v_user_id UUID, 
v_is_filtered BOOLEAN)
+Create or replace FUNCTION GetPermissionsByEntityId(v_id UUID, v_user_id UUID, 
v_is_filtered BOOLEAN, v_app_mode INTEGER)
 RETURNS SETOF permissions_view STABLE
        -- SET NOCOUNT ON added to prevent extra result sets from
        -- interfering with SELECT statements.
@@ -462,7 +462,8 @@
 BEGIN
    RETURN QUERY SELECT *
    FROM permissions_view
-   WHERE object_id = v_id
+   WHERE  (permissions_view.app_mode & v_app_mode) > 0
+   AND object_id = v_id
    AND   (NOT v_is_filtered OR EXISTS (SELECT 1
                                        FROM   
GetUserPermissionsByEntityId(v_id, v_user_id, v_is_filtered)));
 END; $procedure$
@@ -520,7 +521,7 @@
 
 
 Create or replace FUNCTION GetPermissionsTreeByEntityId
-(v_id UUID, v_object_type_id INTEGER, v_user_id UUID, v_is_filtered BOOLEAN)
+(v_id UUID, v_object_type_id INTEGER, v_user_id UUID, v_is_filtered BOOLEAN, 
v_app_mode INTEGER)
 RETURNS SETOF permissions_view STABLE
        -- SET NOCOUNT ON added to prevent extra result sets from
        -- interfering with SELECT statements.
@@ -528,7 +529,8 @@
 BEGIN
    RETURN QUERY SELECT *
    FROM   permissions_view p
-   WHERE  object_id in(select id from  
fn_get_entity_parents(v_id,v_object_type_id))
+   WHERE  (p.app_mode & v_app_mode) > 0
+   AND  object_id in(select id from  
fn_get_entity_parents(v_id,v_object_type_id))
    AND    (NOT v_is_filtered OR EXISTS (SELECT 1
                                         FROM   user_flat_groups u
                                         WHERE  p.ad_element_id = u.granted_id


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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I7d2d7f1c3d37ecfb66d0965bb0701f7ced6af84d
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Darshan N <dnara...@redhat.com>
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to