You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ranger.apache.org by sp...@apache.org on 2020/10/14 14:21:15 UTC

[ranger] branch master updated: RANGER-3038: Fixed issue with group memberships update to ranger admin

This is an automated email from the ASF dual-hosted git repository.

spolavarapu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ranger.git


The following commit(s) were added to refs/heads/master by this push:
     new ac822ee  RANGER-3038: Fixed issue with group memberships update to ranger admin
ac822ee is described below

commit ac822ee187d1885bc33065dae2b183b8d20f6ac2
Author: Sailaja Polavarapu <sp...@cloudera.com>
AuthorDate: Wed Oct 14 07:21:05 2020 -0700

    RANGER-3038: Fixed issue with group memberships update to ranger admin
---
 .../org/apache/ranger/service/XGroupUserService.java  | 19 +++++++++++++------
 .../src/main/resources/META-INF/jpa_named_queries.xml |  2 +-
 2 files changed, 14 insertions(+), 7 deletions(-)

diff --git a/security-admin/src/main/java/org/apache/ranger/service/XGroupUserService.java b/security-admin/src/main/java/org/apache/ranger/service/XGroupUserService.java
index 74431b0..0509999 100644
--- a/security-admin/src/main/java/org/apache/ranger/service/XGroupUserService.java
+++ b/security-admin/src/main/java/org/apache/ranger/service/XGroupUserService.java
@@ -113,19 +113,26 @@ public class XGroupUserService extends
 			if (usersFromDB.containsKey(username)) {
 				// Add or update group user mapping only if the user exists in x_user table.
 				XXGroupUser xxGroupUser = groupUsers.get(username);
-				if (xxGroupUser != null) {
-					if (xXPortalUser != null) {
-						xxGroupUser.setAddedByUserId(createdByUserId);
-						xxGroupUser.setUpdatedByUserId(createdByUserId);
-					}
+				boolean groupUserMappingExists = true;
+				if (xxGroupUser == null) {
+					xxGroupUser = new XXGroupUser();
+					groupUserMappingExists = false;
+				}
+
+				if (xXPortalUser != null) {
+					xxGroupUser.setAddedByUserId(createdByUserId);
+					xxGroupUser.setUpdatedByUserId(createdByUserId);
+				}
+
+				if (groupUserMappingExists) {
 					xxGroupUser = getDao().update(xxGroupUser);
 				} else {
-					xxGroupUser = new XXGroupUser();
 					VXGroupUser vXGroupUser = new VXGroupUser();
 					vXGroupUser.setUserId(usersFromDB.get(username));
 					vXGroupUser.setName(groupName);
 					vXGroupUser.setParentGroupId(xxGroup.getId());
 					xxGroupUser = mapViewToEntityBean(vXGroupUser, xxGroupUser, 0);
+					xxGroupUser = getDao().create(xxGroupUser);
 				}
 				VXGroupUser vXGroupUser = postCreate(xxGroupUser);
 				if (logger.isDebugEnabled()) {
diff --git a/security-admin/src/main/resources/META-INF/jpa_named_queries.xml b/security-admin/src/main/resources/META-INF/jpa_named_queries.xml
index a490e76..0cf9295 100755
--- a/security-admin/src/main/resources/META-INF/jpa_named_queries.xml
+++ b/security-admin/src/main/resources/META-INF/jpa_named_queries.xml
@@ -146,7 +146,7 @@
        </named-query>
 
 	<named-query name="XXGroupUser.findUsersByGroupName">
-		<query>SELECT user.name FROM XXUser user, XXGroupUser groupUser
+		<query>SELECT user.name, groupUser FROM XXUser user, XXGroupUser groupUser
 			WHERE user.id=groupUser.userId and groupUser.name = :groupName
 		</query>
 	</named-query>