Repository: incubator-ranger
Updated Branches:
  refs/heads/tag-policy 3afb0d69e -> 3a0982b51


RANGER-563: permissions are duplicated in some policyItems after upgrade

Signed-off-by: sneethiraj <[email protected]>


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

Branch: refs/heads/tag-policy
Commit: ec701f279847550229b2f44509b68edb8f995713
Parents: e2a5900
Author: Madhan Neethiraj <[email protected]>
Authored: Sat Jun 20 23:18:38 2015 -0400
Committer: sneethiraj <[email protected]>
Committed: Mon Jun 22 09:42:18 2015 -0700

----------------------------------------------------------------------
 .../ranger/patch/PatchMigration_J10002.java     | 22 +++++++++++++++++---
 1 file changed, 19 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/ec701f27/security-admin/src/main/java/org/apache/ranger/patch/PatchMigration_J10002.java
----------------------------------------------------------------------
diff --git 
a/security-admin/src/main/java/org/apache/ranger/patch/PatchMigration_J10002.java
 
b/security-admin/src/main/java/org/apache/ranger/patch/PatchMigration_J10002.java
index 44306d8..621159d 100644
--- 
a/security-admin/src/main/java/org/apache/ranger/patch/PatchMigration_J10002.java
+++ 
b/security-admin/src/main/java/org/apache/ranger/patch/PatchMigration_J10002.java
@@ -471,10 +471,10 @@ public class PatchMigration_J10002 extends BaseLoader {
                                if(StringUtils.equalsIgnoreCase(accessType, 
"Admin")) {
                                        
policyItem.setDelegateAdmin(Boolean.TRUE);
                                        if ( svcDef.getId() == 
EmbeddedServiceDefsUtil.instance().getHBaseServiceDefId()) {
-                                               accessList.add(new 
RangerPolicyItemAccess(accessType));
+                                               addAccessType(accessType, 
accessList);
                                        }
                                } else {
-                                       accessList.add(new 
RangerPolicyItemAccess(accessType));
+                                       addAccessType(accessType, accessList);
                                }
 
                                ipAddress = permMap.getIpAddress();
@@ -509,7 +509,23 @@ public class PatchMigration_J10002 extends BaseLoader {
 
                return policyItems;
        }
-       
+
+       private void addAccessType(String accessType, 
List<RangerPolicyItemAccess> accessList) {
+               boolean alreadyExists = false;
+
+               for(RangerPolicyItemAccess access : accessList) {
+                       if(StringUtils.equalsIgnoreCase(accessType, 
access.getType())) {
+                               alreadyExists = true;
+
+                               break;
+                       }
+               }
+
+               if(!alreadyExists) {
+                       accessList.add(new RangerPolicyItemAccess(accessType));
+               }
+       }
+
        private void updateSequences() {
                daoMgr.getXXServiceDef().updateSequence();
                daoMgr.getXXService().updateSequence();

Reply via email to