Repository: ranger Updated Branches: refs/heads/ranger-0.7 9f4381080 -> a58231669
RANGER-1953 : improvement on user-group page listing Signed-off-by: Mehul Parikh <[email protected]> Project: http://git-wip-us.apache.org/repos/asf/ranger/repo Commit: http://git-wip-us.apache.org/repos/asf/ranger/commit/a5823166 Tree: http://git-wip-us.apache.org/repos/asf/ranger/tree/a5823166 Diff: http://git-wip-us.apache.org/repos/asf/ranger/diff/a5823166 Branch: refs/heads/ranger-0.7 Commit: a582316696f46a133d11af9bfb5cc61fcaa22ceb Parents: 9f43810 Author: Nikhil P <[email protected]> Authored: Fri Jan 19 12:31:48 2018 +0530 Committer: Abhay Kulkarni <[email protected]> Committed: Wed Sep 26 12:48:42 2018 -0700 ---------------------------------------------------------------------- .../main/java/org/apache/ranger/biz/XUserMgr.java | 17 +++++++++++++++++ .../ranger/common/RangerServicePoliciesCache.java | 2 +- .../main/webapp/scripts/views/users/GroupCreate.js | 1 + .../java/org/apache/ranger/biz/TestXUserMgr.java | 8 +++++++- 4 files changed, 26 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ranger/blob/a5823166/security-admin/src/main/java/org/apache/ranger/biz/XUserMgr.java ---------------------------------------------------------------------- diff --git a/security-admin/src/main/java/org/apache/ranger/biz/XUserMgr.java b/security-admin/src/main/java/org/apache/ranger/biz/XUserMgr.java index e6e82d1..4c01d57 100644 --- a/security-admin/src/main/java/org/apache/ranger/biz/XUserMgr.java +++ b/security-admin/src/main/java/org/apache/ranger/biz/XUserMgr.java @@ -53,6 +53,7 @@ import org.apache.ranger.common.AppConstants; import org.apache.ranger.common.MessageEnums; import org.apache.ranger.common.PropertiesUtil; import org.apache.ranger.common.RangerConstants; +import org.apache.ranger.common.RangerServicePoliciesCache; import org.apache.ranger.common.SearchCriteria; import org.apache.ranger.common.UserSessionBase; import org.apache.ranger.db.RangerDaoManager; @@ -844,8 +845,24 @@ public class XUserMgr extends XUserMgrBase { xGroup, "update"); xaBizUtil.createTrxLog(trxLogList); vXGroup = (VXGroup) xGroupService.updateResource(vXGroup); + if (vXGroup != null) { + updateXgroupUserForGroupUpdate(vXGroup); + RangerServicePoliciesCache.sInstance=null; + } return vXGroup; } + + private void updateXgroupUserForGroupUpdate(VXGroup vXGroup) { + List<XXGroupUser> grpUsers = daoManager.getXXGroupUser().findByGroupId(vXGroup.getId()); + if(CollectionUtils.isNotEmpty(grpUsers)){ + for (XXGroupUser grpUser : grpUsers) { + VXGroupUser vXGroupUser = xGroupUserService.populateViewBean(grpUser); + vXGroupUser.setName(vXGroup.getName()); + updateXGroupUser(vXGroupUser); + } + } + } + public VXGroupUser updateXGroupUser(VXGroupUser vXGroupUser) { checkAdminAccess(); return super.updateXGroupUser(vXGroupUser); http://git-wip-us.apache.org/repos/asf/ranger/blob/a5823166/security-admin/src/main/java/org/apache/ranger/common/RangerServicePoliciesCache.java ---------------------------------------------------------------------- diff --git a/security-admin/src/main/java/org/apache/ranger/common/RangerServicePoliciesCache.java b/security-admin/src/main/java/org/apache/ranger/common/RangerServicePoliciesCache.java index eb20f69..0d5689a 100644 --- a/security-admin/src/main/java/org/apache/ranger/common/RangerServicePoliciesCache.java +++ b/security-admin/src/main/java/org/apache/ranger/common/RangerServicePoliciesCache.java @@ -42,7 +42,7 @@ public class RangerServicePoliciesCache { private static final int MAX_WAIT_TIME_FOR_UPDATE = 10; - private static volatile RangerServicePoliciesCache sInstance = null; + public static volatile RangerServicePoliciesCache sInstance = null; private final boolean useServicePoliciesCache; private final int waitTimeInSeconds; http://git-wip-us.apache.org/repos/asf/ranger/blob/a5823166/security-admin/src/main/webapp/scripts/views/users/GroupCreate.js ---------------------------------------------------------------------- diff --git a/security-admin/src/main/webapp/scripts/views/users/GroupCreate.js b/security-admin/src/main/webapp/scripts/views/users/GroupCreate.js index d16cbe5..b73f755 100644 --- a/security-admin/src/main/webapp/scripts/views/users/GroupCreate.js +++ b/security-admin/src/main/webapp/scripts/views/users/GroupCreate.js @@ -113,6 +113,7 @@ define(function(require){ success: function () { XAUtil.blockUI('unblock'); XAUtil.allowNavigation(); + Backbone.fetchCache._cache = {} var msg = that.editGroup ? 'Group updated successfully' :'Group created successfully'; XAUtil.notifySuccess('Success', msg); if(that.editGroup){ http://git-wip-us.apache.org/repos/asf/ranger/blob/a5823166/security-admin/src/test/java/org/apache/ranger/biz/TestXUserMgr.java ---------------------------------------------------------------------- diff --git a/security-admin/src/test/java/org/apache/ranger/biz/TestXUserMgr.java b/security-admin/src/test/java/org/apache/ranger/biz/TestXUserMgr.java index b6ef572..0279883 100644 --- a/security-admin/src/test/java/org/apache/ranger/biz/TestXUserMgr.java +++ b/security-admin/src/test/java/org/apache/ranger/biz/TestXUserMgr.java @@ -49,6 +49,7 @@ import org.apache.ranger.entity.XXAuthSession; import org.apache.ranger.entity.XXGroup; import org.apache.ranger.entity.XXGroupGroup; import org.apache.ranger.entity.XXGroupPermission; +import org.apache.ranger.entity.XXGroupUser; import org.apache.ranger.entity.XXModuleDef; import org.apache.ranger.entity.XXPolicy; import org.apache.ranger.entity.XXPortalUser; @@ -467,6 +468,8 @@ public class TestXUserMgr { @Test public void test17UpdateXGroup() { XXGroupDao xxGroupDao = Mockito.mock(XXGroupDao.class); + XXGroupUserDao xxGroupUserDao = Mockito.mock(XXGroupUserDao.class); + List<XXGroupUser> grpUsers =new ArrayList<XXGroupUser>(); setup(); VXGroup vXGroup = new VXGroup(); vXGroup.setId(userId); @@ -477,7 +480,8 @@ public class TestXUserMgr { Mockito.when(daoManager.getXXGroup()).thenReturn(xxGroupDao); Mockito.when(xxGroupDao.getById(vXGroup.getId())).thenReturn(xxGroup); Mockito.when(xGroupService.updateResource(vXGroup)).thenReturn(vXGroup); - + Mockito.when(daoManager.getXXGroupUser()).thenReturn(xxGroupUserDao); + Mockito.when(xxGroupUserDao.findByGroupId(vXGroup.getId())).thenReturn(grpUsers); VXGroup dbvxGroup = xUserMgr.updateXGroup(vXGroup); Assert.assertNotNull(dbvxGroup); userId = dbvxGroup.getId(); @@ -486,7 +490,9 @@ public class TestXUserMgr { dbvxGroup.getDescription()); Assert.assertEquals(vXGroup.getName(), dbvxGroup.getName()); Mockito.verify(daoManager).getXXGroup(); + Mockito.verify(daoManager).getXXGroupUser(); Mockito.verify(xGroupService).updateResource(vXGroup); + Mockito.verify(xxGroupUserDao).findByGroupId(vXGroup.getId()); } @Test
