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();
