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 <[email protected]>
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>

Reply via email to