You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ranger.apache.org by me...@apache.org on 2018/03/01 04:45:32 UTC

ranger git commit: RANGER-1993:Improvement on permission module for listing modules

Repository: ranger
Updated Branches:
  refs/heads/master 9ed210470 -> 91a437a29


RANGER-1993:Improvement on permission module for listing modules

Signed-off-by: Mehul Parikh <me...@apache.org>


Project: http://git-wip-us.apache.org/repos/asf/ranger/repo
Commit: http://git-wip-us.apache.org/repos/asf/ranger/commit/91a437a2
Tree: http://git-wip-us.apache.org/repos/asf/ranger/tree/91a437a2
Diff: http://git-wip-us.apache.org/repos/asf/ranger/diff/91a437a2

Branch: refs/heads/master
Commit: 91a437a29cd58902dc49b422e0421e36c7a07039
Parents: 9ed2104
Author: fatimaawez <fa...@gmail.com>
Authored: Tue Feb 27 14:57:15 2018 +0530
Committer: Mehul Parikh <me...@apache.org>
Committed: Thu Mar 1 10:14:58 2018 +0530

----------------------------------------------------------------------
 .../plugin/store/AbstractPredicateUtil.java     | 22 +++++++++++++-------
 .../ranger/service/XModuleDefServiceBase.java   | 14 +++++++++----
 2 files changed, 24 insertions(+), 12 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ranger/blob/91a437a2/agents-common/src/main/java/org/apache/ranger/plugin/store/AbstractPredicateUtil.java
----------------------------------------------------------------------
diff --git a/agents-common/src/main/java/org/apache/ranger/plugin/store/AbstractPredicateUtil.java b/agents-common/src/main/java/org/apache/ranger/plugin/store/AbstractPredicateUtil.java
index a139443..1e3f145 100644
--- a/agents-common/src/main/java/org/apache/ranger/plugin/store/AbstractPredicateUtil.java
+++ b/agents-common/src/main/java/org/apache/ranger/plugin/store/AbstractPredicateUtil.java
@@ -462,10 +462,13 @@ public class AbstractPredicateUtil {
 						List<RangerPolicyItem> policyItems = (List<RangerPolicyItem>)policyItemsObj;
 
 						for(RangerPolicyItem policyItem : policyItems) {
-							if(policyItem.getUsers().contains(userName)) {
-								ret = true;
-
-								break;
+                                                        if(! policyItem.getUsers().isEmpty()) {
+                                                                for(String user : policyItem.getUsers()) {
+                                                                        if(StringUtils.containsIgnoreCase(user, userName)) {
+                                                                                ret = true;
+                                                                                break;
+                                                                        }
+                                                                }
 							}
 						}
 						if (ret) {
@@ -517,10 +520,13 @@ public class AbstractPredicateUtil {
 						List<RangerPolicyItem> policyItems = (List<RangerPolicyItem>)policyItemsObj;
 
 						for(RangerPolicyItem policyItem : policyItems) {
-							if(policyItem.getGroups().contains(groupName)) {
-								ret = true;
-
-								break;
+                                                        if(! policyItem.getGroups().isEmpty()) {
+                                                                for(String group : policyItem.getGroups()) {
+                                                                        if(StringUtils.containsIgnoreCase(group, groupName)) {
+                                                                                ret = true;
+                                                                                break;
+                                                                        }
+                                                                }
 							}
 						}
 						if (ret) {

http://git-wip-us.apache.org/repos/asf/ranger/blob/91a437a2/security-admin/src/main/java/org/apache/ranger/service/XModuleDefServiceBase.java
----------------------------------------------------------------------
diff --git a/security-admin/src/main/java/org/apache/ranger/service/XModuleDefServiceBase.java b/security-admin/src/main/java/org/apache/ranger/service/XModuleDefServiceBase.java
index 57cc694..adf4358 100644
--- a/security-admin/src/main/java/org/apache/ranger/service/XModuleDefServiceBase.java
+++ b/security-admin/src/main/java/org/apache/ranger/service/XModuleDefServiceBase.java
@@ -26,7 +26,8 @@ import org.apache.ranger.common.SearchCriteria;
 import org.apache.ranger.entity.XXModuleDef;
 import org.apache.ranger.view.VXModuleDef;
 import org.apache.ranger.view.VXModuleDefList;
-
+import java.util.Map;
+import java.util.HashMap;
 public abstract class XModuleDefServiceBase<T extends XXModuleDef, V extends VXModuleDef>
 		extends AbstractBaseResourceService<T, V> {
 
@@ -58,16 +59,21 @@ public abstract class XModuleDefServiceBase<T extends XXModuleDef, V extends VXM
 	public VXModuleDefList searchModuleDef(SearchCriteria searchCriteria) {
 		VXModuleDefList returnList = new VXModuleDefList();
 		List<VXModuleDef> vXModuleDefList = new ArrayList<VXModuleDef>();
-
+                searchCriteria.setMaxRows(Integer.MAX_VALUE);
 		List<T> resultList = searchResources(searchCriteria,
 				searchFields, sortFields, returnList);
+                Map<Long, T> matchModule = new HashMap<Long,T>();
+                for (T moduleDef : resultList) {
+                        matchModule.put(moduleDef.getId(),  moduleDef);
+                }
 
+                List <T> moduleDefList=new ArrayList<T>(matchModule.values());
 		// Iterate over the result list and create the return list
-		for (T gjXModuleDef : resultList) {
+                for (T gjXModuleDef : moduleDefList) {
 			VXModuleDef vXModuleDef = populateViewBean(gjXModuleDef);
 			vXModuleDefList.add(vXModuleDef);
 		}
-
+                returnList.setTotalCount(vXModuleDefList.size());
 		returnList.setvXModuleDef(vXModuleDefList);
 		return returnList;
 	}