Repository: incubator-ranger
Updated Branches:
  refs/heads/ranger-0.5 24406a046 -> 0c9418cf8


RANGER-831: policy version incremented twice when resources are updated


Project: http://git-wip-us.apache.org/repos/asf/incubator-ranger/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ranger/commit/0c9418cf
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ranger/tree/0c9418cf
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ranger/diff/0c9418cf

Branch: refs/heads/ranger-0.5
Commit: 0c9418cf8465e5757440eef9c8a706c4b0584538
Parents: 24406a0
Author: Gautam Borad <[email protected]>
Authored: Fri Jan 15 14:23:17 2016 -0800
Committer: Gautam Borad <[email protected]>
Committed: Tue Feb 2 11:30:24 2016 +0530

----------------------------------------------------------------------
 .../ranger/service/RangerBaseModelService.java  | 112 +++++++------------
 1 file changed, 42 insertions(+), 70 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/0c9418cf/security-admin/src/main/java/org/apache/ranger/service/RangerBaseModelService.java
----------------------------------------------------------------------
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 4a1f27c..26fe439 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
@@ -160,80 +160,49 @@ public abstract class RangerBaseModelService<T extends 
XXDBBase, V extends Range
                return mapEntityToViewBean(vObj, entityObj);
        }
 
-       protected T populateEntityBean(V vObj, int operationContext) {
-               T entityObj;
-
-               Date createTime = null;
-               Date updTime = null;
-               Long createdById = null;
-               Long updById = null;
-
-               if (operationContext == OPERATION_CREATE_CONTEXT) {
-                       entityObj = createEntityObject();
-
-                       if(!populateExistingBaseFields) {
-                               createTime = DateUtil.getUTCDate();
-                               updTime = DateUtil.getUTCDate();
-                               createdById = ContextUtil.getCurrentUserId();
-                               updById = ContextUtil.getCurrentUserId();
-                       } else if(populateExistingBaseFields) {
-                               createTime = vObj.getCreateTime() != null ? 
vObj.getCreateTime() : DateUtil.getUTCDate();
-                               updTime = vObj.getUpdateTime() != null ? 
vObj.getUpdateTime() : DateUtil.getUTCDate();
-
-                               // If this is the case then vObj.createdBy and 
vObj.updatedBy must be loginId of user.
-                               XXPortalUser createdByUser = 
daoMgr.getXXPortalUser().findByLoginId(vObj.getCreatedBy());
-                               XXPortalUser updByUser = 
daoMgr.getXXPortalUser().findByLoginId(vObj.getUpdatedBy());
-
-                               if(createdByUser != null) {
-                                       createdById = createdByUser.getId();
-                               } else {
-                                       createdById = 
ContextUtil.getCurrentUserId();
-                               }
+       protected T populateEntityBeanForCreate(T entityObj, V vObj) {
+               if(!populateExistingBaseFields) {
+                       entityObj.setCreateTime(DateUtil.getUTCDate());
+                       entityObj.setUpdateTime(entityObj.getCreateTime());
+                       
entityObj.setAddedByUserId(ContextUtil.getCurrentUserId());
+                       
entityObj.setUpdatedByUserId(entityObj.getAddedByUserId());
+               } else if(populateExistingBaseFields) {
+                       XXPortalUser createdByUser = 
daoMgr.getXXPortalUser().findByLoginId(vObj.getCreatedBy());
+                       XXPortalUser updByUser     = 
daoMgr.getXXPortalUser().findByLoginId(vObj.getUpdatedBy());
+
+                       entityObj.setId(vObj.getId());
+                       entityObj.setCreateTime(vObj.getCreateTime() != null ? 
vObj.getCreateTime() : DateUtil.getUTCDate());
+                       entityObj.setUpdateTime(vObj.getUpdateTime() != null ? 
vObj.getUpdateTime() : DateUtil.getUTCDate());
+                       entityObj.setAddedByUserId(createdByUser != null ? 
createdByUser.getId() : ContextUtil.getCurrentUserId());
+                       entityObj.setUpdatedByUserId(updByUser != null ? 
updByUser.getId() : ContextUtil.getCurrentUserId());
+               }
 
-                               if(updByUser != null) {
-                                       updById = updByUser.getId();
-                               } else {
-                                       updById = 
ContextUtil.getCurrentUserId();
-                               }
-                               entityObj.setId(vObj.getId());
-                       }
-               } else if (operationContext == OPERATION_UPDATE_CONTEXT) {
-                       entityObj = getDao().getById(vObj.getId());
+               return mapViewToEntityBean(vObj, entityObj, 
OPERATION_CREATE_CONTEXT);
+       }
 
-                       if (entityObj == null) {
-                               throw restErrorUtil.createRESTException(
-                                               "No Object found to update.",
-                                               MessageEnums.DATA_NOT_FOUND);
-                       }
+       protected T populateEntityBeanForUpdate(T entityObj, V vObj) {
+               if (entityObj == null) {
+                       throw restErrorUtil.createRESTException(
+                                       "No Object found to update.",
+                                       MessageEnums.DATA_NOT_FOUND);
+               }
 
-                       createTime = entityObj.getCreateTime();
-                       if (createTime == null) {
-                               createTime = DateUtil.getUTCDate();
-                       }
+               T ret = mapViewToEntityBean(vObj, entityObj, 
OPERATION_UPDATE_CONTEXT);
 
-                       createdById = entityObj.getAddedByUserId();
-                       if (createdById == null) {
-                               createdById = ContextUtil.getCurrentUserId();
-                       }
-                       
-                       if(populateExistingBaseFields) {
-                               updTime = entityObj.getUpdateTime();
-                               updById = entityObj.getUpdatedByUserId();
-                       } else {                                
-                               updTime = DateUtil.getUTCDate();
-                               updById = ContextUtil.getCurrentUserId();
-                       }
-               } else {
-                       throw restErrorUtil.createRESTException(
-                                       "Error while populating EntityBean",
-                                       MessageEnums.INVALID_INPUT_DATA);
+               if (ret.getCreateTime() == null) {
+                       ret.setCreateTime(DateUtil.getUTCDate());
+               }
+
+               if (ret.getAddedByUserId() == null) {
+                       ret.setAddedByUserId(ContextUtil.getCurrentUserId());
                }
-               entityObj.setAddedByUserId(createdById);
-               entityObj.setUpdatedByUserId(updById);
-               entityObj.setCreateTime(createTime);
-               entityObj.setUpdateTime(updTime);
 
-               return mapViewToEntityBean(vObj, entityObj, operationContext);
+               if(!populateExistingBaseFields) {
+                       ret.setUpdateTime(DateUtil.getUTCDate());
+                       ret.setUpdatedByUserId(ContextUtil.getCurrentUserId());
+               }
+
+               return ret;
        }
 
        protected abstract void validateForCreate(V vObj);
@@ -242,7 +211,10 @@ public abstract class RangerBaseModelService<T extends 
XXDBBase, V extends Range
 
        public T preCreate(V vObj) {
                validateForCreate(vObj);
-               return populateEntityBean(vObj, OPERATION_CREATE_CONTEXT);
+
+               T entityObj = createEntityObject();
+
+               return populateEntityBeanForCreate(entityObj, vObj);
        }
 
        public V postCreate(T xObj) {
@@ -286,7 +258,7 @@ public abstract class RangerBaseModelService<T extends 
XXDBBase, V extends Range
                                        viewBaseBean.getId(), null, "preUpdate: 
id not found.");
                }
                validateForUpdate(viewBaseBean, resource);
-               return populateEntityBean(viewBaseBean, 
OPERATION_UPDATE_CONTEXT);
+               return populateEntityBeanForUpdate(resource, viewBaseBean);
        }
        
        public boolean delete(V vObj) {

Reply via email to