Repository: ranger
Updated Branches:
  refs/heads/master 796883617 -> ab4793bce


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/ab4793bc
Tree: http://git-wip-us.apache.org/repos/asf/ranger/tree/ab4793bc
Diff: http://git-wip-us.apache.org/repos/asf/ranger/diff/ab4793bc

Branch: refs/heads/master
Commit: ab4793bce7469bcc80e5a99b0f764f1fbf755efc
Parents: 7968836
Author: Nikhil P <[email protected]>
Authored: Fri Jan 19 12:31:48 2018 +0530
Committer: Mehul Parikh <[email protected]>
Committed: Thu Jan 25 09:51:45 2018 +0530

----------------------------------------------------------------------
 .../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/ab4793bc/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 ee0ccfc..cecb3f8 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;
@@ -852,8 +853,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/ab4793bc/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/ab4793bc/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/ab4793bc/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 cdd581b..0b71695 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;
@@ -428,6 +429,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);
@@ -438,7 +441,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();
@@ -447,7 +451,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

Reply via email to