Repository: incubator-ranger
Updated Branches:
  refs/heads/master 38b79e725 -> 2c7f617be


http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/2c7f617b/security-admin/src/main/java/org/apache/ranger/service/RangerServiceDefServiceBase.java
----------------------------------------------------------------------
diff --git 
a/security-admin/src/main/java/org/apache/ranger/service/RangerServiceDefServiceBase.java
 
b/security-admin/src/main/java/org/apache/ranger/service/RangerServiceDefServiceBase.java
index a0047a5..b349768 100644
--- 
a/security-admin/src/main/java/org/apache/ranger/service/RangerServiceDefServiceBase.java
+++ 
b/security-admin/src/main/java/org/apache/ranger/service/RangerServiceDefServiceBase.java
@@ -44,6 +44,7 @@ import 
org.apache.ranger.plugin.model.RangerServiceDef.RangerEnumDef;
 import org.apache.ranger.plugin.model.RangerServiceDef.RangerEnumElementDef;
 import 
org.apache.ranger.plugin.model.RangerServiceDef.RangerPolicyConditionDef;
 import org.apache.ranger.plugin.model.RangerServiceDef.RangerResourceDef;
+import org.apache.ranger.plugin.model.RangerServiceDef.RangerRowFilterDef;
 import org.apache.ranger.plugin.model.RangerServiceDef.RangerServiceConfigDef;
 import org.apache.ranger.plugin.util.SearchFilter;
 import org.apache.ranger.plugin.util.ServiceDefUtil;
@@ -144,7 +145,9 @@ public abstract class RangerServiceDefServiceBase<T extends 
XXServiceDefBase, V
                        serviceDef.setEnums(enums);
                }
 
-               RangerDataMaskDef dataMaskDef = new RangerDataMaskDef();
+               RangerDataMaskDef  dataMaskDef  = new RangerDataMaskDef();
+               RangerRowFilterDef rowFilterDef = new RangerRowFilterDef();
+
                List<XXDataMaskTypeDef> xDataMaskTypes = 
daoMgr.getXXDataMaskTypeDef().findByServiceDefId(serviceDefId);
                if (!stringUtil.isEmpty(xDataMaskTypes)) {
                        List<RangerDataMaskTypeDef> dataMaskTypes = new 
ArrayList<RangerDataMaskTypeDef>();
@@ -163,6 +166,12 @@ public abstract class RangerServiceDefServiceBase<T 
extends XXServiceDefBase, V
 
                                        
dataMaskDef.getResources().add(dataMaskResource);
                                }
+
+                               if 
(StringUtils.isNotEmpty(xResource.getRowFilterOptions())) {
+                                       RangerResourceDef resource = 
jsonToObject(xResource.getRowFilterOptions(), RangerResourceDef.class);
+
+                                       
rowFilterDef.getResources().add(resource);
+                               }
                        }
                }
 
@@ -173,9 +182,16 @@ public abstract class RangerServiceDefServiceBase<T 
extends XXServiceDefBase, V
 
                                        
dataMaskDef.getAccessTypes().add(dataMaskAccessType);
                                }
+
+                               
if(StringUtils.isNotEmpty(xAtd.getRowFilterOptions())) {
+                                       RangerAccessTypeDef accessType = 
jsonToObject(xAtd.getRowFilterOptions(), RangerAccessTypeDef.class);
+
+                                       
rowFilterDef.getAccessTypes().add(accessType);
+                               }
                        }
                }
                serviceDef.setDataMaskDef(dataMaskDef);
+               serviceDef.setRowFilterDef(rowFilterDef);
 
                ServiceDefUtil.normalize(serviceDef);
 

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/2c7f617b/security-admin/src/main/resources/META-INF/jpa_named_queries.xml
----------------------------------------------------------------------
diff --git a/security-admin/src/main/resources/META-INF/jpa_named_queries.xml 
b/security-admin/src/main/resources/META-INF/jpa_named_queries.xml
index 739b5ca..c70dcba 100644
--- a/security-admin/src/main/resources/META-INF/jpa_named_queries.xml
+++ b/security-admin/src/main/resources/META-INF/jpa_named_queries.xml
@@ -593,6 +593,27 @@
                <query>select obj from XXPolicyItemDataMaskInfo obj where 
obj.type = :type</query>
        </named-query>
 
+       <!-- XXPolicyItemRowFilterInfo -->
+       <named-query name="XXPolicyItemRowFilterInfo.findByPolicyItemId">
+               <query>select obj from XXPolicyItemRowFilterInfo obj where 
obj.policyItemId = :polItemId</query>
+       </named-query>
+
+       <named-query name="XXPolicyItemRowFilterInfo.findByPolicyId">
+               <query>select obj from XXPolicyItemRowFilterInfo obj, 
XXPolicyItem item
+                       where obj.policyItemId = item.id
+                       and item.policyId = :policyId
+                       order by obj.policyItemId
+               </query>
+       </named-query>
+
+       <named-query name="XXPolicyItemRowFilterInfo.findByServiceId">
+               <query>select obj from XXPolicyItemRowFilterInfo obj, 
XXPolicyItem item
+                       where obj.policyItemId = item.id
+                       and item.policyId in (select policy.id from XXPolicy 
policy where policy.service = :serviceId)
+                       order by item.policyId, obj.policyItemId
+               </query>
+       </named-query>
+
        <!-- XXDataHist -->
        <named-query name="XXDataHist.findLatestByObjectClassTypeAndObjectId">
                <query>select obj from XXDataHist obj where obj.objectId = 
:objectId 

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/2c7f617b/security-admin/src/test/java/org/apache/ranger/biz/TestServiceDBStore.java
----------------------------------------------------------------------
diff --git 
a/security-admin/src/test/java/org/apache/ranger/biz/TestServiceDBStore.java 
b/security-admin/src/test/java/org/apache/ranger/biz/TestServiceDBStore.java
index 5cb0290..17da9be 100644
--- a/security-admin/src/test/java/org/apache/ranger/biz/TestServiceDBStore.java
+++ b/security-admin/src/test/java/org/apache/ranger/biz/TestServiceDBStore.java
@@ -312,6 +312,10 @@ public class TestServiceDBStore {
                XXEnumElementDef xEnumElementDef = 
Mockito.mock(XXEnumElementDef.class);
                XXAccessTypeDefGrants xAccessTypeDefGrants = Mockito
                                .mock(XXAccessTypeDefGrants.class);
+               List<XXAccessTypeDef> xAccessTypeDefs = new 
ArrayList<XXAccessTypeDef>();
+               xAccessTypeDefs.add(xAccessTypeDef);
+               List<XXResourceDef> xResourceDefs = new 
ArrayList<XXResourceDef>();
+               xResourceDefs.add(xResourceDef);
 
                RangerServiceConfigDef rangerServiceConfigDef = Mockito
                                .mock(RangerServiceConfigDef.class);
@@ -353,6 +357,7 @@ public class TestServiceDBStore {
                                .thenReturn(xResourceDef);
                Mockito.when(xResourceDefDao.create(xResourceDef)).thenReturn(
                                xResourceDef);
+               
Mockito.when(xResourceDefDao.findByServiceDefId(xServiceDef.getId())).thenReturn(xResourceDefs);
 
                Mockito.when(daoManager.getXXAccessTypeDef()).thenReturn(
                                xAccessTypeDefDao);
@@ -362,6 +367,7 @@ public class TestServiceDBStore {
                                .thenReturn(xAccessTypeDef);
                
Mockito.when(xAccessTypeDefDao.create(xAccessTypeDef)).thenReturn(
                                xAccessTypeDef);
+               
Mockito.when(xAccessTypeDefDao.findByServiceDefId(xServiceDef.getId())).thenReturn(xAccessTypeDefs);
 
                Mockito.when(daoManager.getXXAccessTypeDefGrants()).thenReturn(
                                xAccessTypeDefGrantsDao);
@@ -1305,6 +1311,7 @@ public class TestServiceDBStore {
                XXService xService = Mockito.mock(XXService.class);
                XXPolicyItemDao xPolicyItemDao = 
Mockito.mock(XXPolicyItemDao.class);
                XXPolicyItemDataMaskInfoDao xxPolicyItemDataMaskInfoDao = 
Mockito.mock(XXPolicyItemDataMaskInfoDao.class);
+               XXPolicyItemRowFilterInfoDao xxPolicyItemRowFilterInfoDao = 
Mockito.mock(XXPolicyItemRowFilterInfoDao.class);
                XXPolicyItemConditionDao xPolicyItemConditionDao = Mockito
                                .mock(XXPolicyItemConditionDao.class);
                XXPolicyItemGroupPermDao xPolicyItemGroupPermDao = Mockito
@@ -1367,6 +1374,7 @@ public class TestServiceDBStore {
                policyItemList.add(policyItem);
 
                List<XXPolicyItemDataMaskInfo> policyItemDataMaskInfoList = new 
ArrayList<XXPolicyItemDataMaskInfo>();
+               List<XXPolicyItemRowFilterInfo> policyItemRowFilterInfoList = 
new ArrayList<XXPolicyItemRowFilterInfo>();
 
                List<XXPolicyItemCondition> policyItemConditionList = new 
ArrayList<XXPolicyItemCondition>();
                XXPolicyItemCondition policyItemCondition = new 
XXPolicyItemCondition();
@@ -1478,6 +1486,9 @@ public class TestServiceDBStore {
                
Mockito.when(daoManager.getXXPolicyItemDataMaskInfo()).thenReturn(xxPolicyItemDataMaskInfoDao);
                
Mockito.when(xxPolicyItemDataMaskInfoDao.findByPolicyItemId(policyItem.getId())).thenReturn(policyItemDataMaskInfoList);
 
+               
Mockito.when(daoManager.getXXPolicyItemRowFilterInfo()).thenReturn(xxPolicyItemRowFilterInfoDao);
+               
Mockito.when(xxPolicyItemRowFilterInfoDao.findByPolicyItemId(policyItem.getId())).thenReturn(policyItemRowFilterInfoList);
+
                Mockito.when(daoManager.getXXPolicyItemCondition()).thenReturn(
                                xPolicyItemConditionDao);
                Mockito.when(
@@ -2143,6 +2154,7 @@ public class TestServiceDBStore {
                XXService xService = Mockito.mock(XXService.class);
                XXPolicyItemDao xPolicyItemDao = 
Mockito.mock(XXPolicyItemDao.class);
                XXPolicyItemDataMaskInfoDao xPolicyItemDataMaskInfoDao = 
Mockito.mock(XXPolicyItemDataMaskInfoDao.class);
+               XXPolicyItemRowFilterInfoDao xPolicyItemRowFilterInfoDao = 
Mockito.mock(XXPolicyItemRowFilterInfoDao.class);
                XXPolicyItemConditionDao xPolicyItemConditionDao = Mockito
                                .mock(XXPolicyItemConditionDao.class);
                XXPolicyItemGroupPermDao xPolicyItemGroupPermDao = Mockito
@@ -2179,6 +2191,7 @@ public class TestServiceDBStore {
                policyItemList.add(policyItem);
 
                List<XXPolicyItemDataMaskInfo> policyItemDataMaskInfo = new 
ArrayList<XXPolicyItemDataMaskInfo>();
+               List<XXPolicyItemRowFilterInfo> policyItemRowFilterInfo = new 
ArrayList<XXPolicyItemRowFilterInfo>();
 
                List<XXPolicyItemCondition> policyItemConditionList = new 
ArrayList<XXPolicyItemCondition>();
                XXPolicyItemCondition policyItemCondition = new 
XXPolicyItemCondition();
@@ -2284,6 +2297,10 @@ public class TestServiceDBStore {
                
Mockito.when(xPolicyItemDataMaskInfoDao.findByPolicyId(policyItem.getId()))
                                .thenReturn(policyItemDataMaskInfo);
 
+               
Mockito.when(daoManager.getXXPolicyItemRowFilterInfo()).thenReturn(xPolicyItemRowFilterInfoDao);
+               
Mockito.when(xPolicyItemRowFilterInfoDao.findByPolicyId(policyItem.getId()))
+                               .thenReturn(policyItemRowFilterInfo);
+
                Mockito.when(daoManager.getXXPolicyItemCondition()).thenReturn(
                                xPolicyItemConditionDao);
                Mockito.when(

Reply via email to