You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ranger.apache.org by ab...@apache.org on 2018/09/26 20:14:45 UTC

ranger git commit: RANGER-1953 : improvement on user-group page listing

Repository: ranger
Updated Branches:
  refs/heads/ranger-0.7 9f4381080 -> a58231669


RANGER-1953 : improvement on user-group page listing

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/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 <ni...@gmail.com>
Authored: Fri Jan 19 12:31:48 2018 +0530
Committer: Abhay Kulkarni <ak...@hortonworks.com>
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