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

madhan 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 189b8312f RANGER-5392: policies created by grant command have empty 
'created by' and 'updated by' fields (#726)
189b8312f is described below

commit 189b8312f6ea24085ff71526e68d3a3163c6468c
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)
---
 .../apache/ranger/service/RangerBaseModelService.java   | 17 +++++++++++++++--
 1 file changed, 15 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 0484979d7..78e037bee 100755
--- 
a/security-admin/src/main/java/org/apache/ranger/service/RangerBaseModelService.java
+++ 
b/security-admin/src/main/java/org/apache/ranger/service/RangerBaseModelService.java
@@ -50,6 +50,7 @@
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
+import java.util.Objects;
 
 public abstract class RangerBaseModelService<T extends XXDBBase, V extends 
RangerBaseModelObject> {
     private static final Logger LOG = 
LoggerFactory.getLogger(RangerBaseModelService.class);
@@ -314,9 +315,18 @@ 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 {
             XXPortalUser createdByUser = 
daoMgr.getXXPortalUser().findByLoginId(vObj.getCreatedBy());
@@ -348,8 +358,11 @@ 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