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

madhan pushed a commit to branch ranger-2.8
in repository https://gitbox.apache.org/repos/asf/ranger.git


The following commit(s) were added to refs/heads/ranger-2.8 by this push:
     new b9e75bd25 RANGER-5392: policies created by grant command have empty 
'created by' and 'updated by' fields (#726)
b9e75bd25 is described below

commit b9e75bd25afb30c660f88d7f95498a344049b895
Author: Sanket-Shelar <[email protected]>
AuthorDate: Mon Dec 1 09:48:16 2025 +0530

    RANGER-5392: policies created by grant command have empty 'created by' and 
'updated by' fields (#726)
    
    (cherry picked from commit 189b8312f6ea24085ff71526e68d3a3163c6468c)
---
 .../ranger/service/RangerBaseModelService.java       | 20 ++++++++++++++++++--
 1 file changed, 18 insertions(+), 2 deletions(-)

diff --git 
a/security-admin/src/main/java/org/apache/ranger/service/RangerBaseModelService.java
 
b/security-admin/src/main/java/org/apache/ranger/service/RangerBaseModelService.java
index 4128d70df..d6238e46a 100644
--- 
a/security-admin/src/main/java/org/apache/ranger/service/RangerBaseModelService.java
+++ 
b/security-admin/src/main/java/org/apache/ranger/service/RangerBaseModelService.java
@@ -22,6 +22,7 @@
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
+import java.util.Objects;
 
 import javax.persistence.EntityManager;
 import javax.persistence.Query;
@@ -161,9 +162,19 @@ protected V populateViewBean(T entityObj) {
 
        protected T populateEntityBeanForCreate(T entityObj, V vObj) {
                if(!populateExistingBaseFields) {
+                       Long addedByUserId = ContextUtil.getCurrentUserId();
+
+                       if (addedByUserId == null) {
+                               XXPortalUser createdByUser = 
daoMgr.getXXPortalUser().findByLoginId(vObj.getCreatedBy());
+
+                               if (createdByUser != null) {
+                                       addedByUserId = createdByUser.getId();
+                               }
+                       }
+
                        entityObj.setCreateTime(DateUtil.getUTCDate());
                        entityObj.setUpdateTime(entityObj.getCreateTime());
-                       
entityObj.setAddedByUserId(ContextUtil.getCurrentUserId());
+                       entityObj.setAddedByUserId(addedByUserId);
                        
entityObj.setUpdatedByUserId(entityObj.getAddedByUserId());
                } else if(populateExistingBaseFields) {
                        XXPortalUser createdByUser = 
daoMgr.getXXPortalUser().findByLoginId(vObj.getCreatedBy());
@@ -197,8 +208,13 @@ protected T populateEntityBeanForUpdate(T entityObj, V 
vObj) {
                }
 
                if(!populateExistingBaseFields) {
+                       Long currentUserId = ContextUtil.getCurrentUserId();
+
                        ret.setUpdateTime(DateUtil.getUTCDate());
-                       ret.setUpdatedByUserId(ContextUtil.getCurrentUserId());
+
+                       if (Objects.nonNull(currentUserId)) {
+                               ret.setUpdatedByUserId(currentUserId);
+                       }
                }
 
                return ret;

Reply via email to