Repository: incubator-ranger
Updated Branches:
  refs/heads/master 49b816e81 -> da3a3233d


RANGER-921 : Improve implementation of internal SQL calls

Signed-off-by: Velmurugan Periasamy <[email protected]>


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

Branch: refs/heads/master
Commit: da3a3233d5679284142eb2887c91a754a0da70b9
Parents: 49b816e
Author: Pradeep Agrawal <[email protected]>
Authored: Tue Apr 12 16:50:24 2016 +0530
Committer: Velmurugan Periasamy <[email protected]>
Committed: Wed Apr 13 03:54:23 2016 -0400

----------------------------------------------------------------------
 .../java/org/apache/ranger/common/DateUtil.java | 15 +++++++++
 .../org/apache/ranger/db/XXDataHistDao.java     | 35 +++++++-------------
 .../org/apache/ranger/db/XXPortalUserDao.java   | 13 --------
 .../apache/ranger/db/XXPortalUserRoleDao.java   | 14 ++++++++
 .../patch/PatchPersmissionModel_J10003.java     |  2 +-
 .../resources/META-INF/jpa_named_queries.xml    |  8 +++++
 6 files changed, 50 insertions(+), 37 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/da3a3233/security-admin/src/main/java/org/apache/ranger/common/DateUtil.java
----------------------------------------------------------------------
diff --git 
a/security-admin/src/main/java/org/apache/ranger/common/DateUtil.java 
b/security-admin/src/main/java/org/apache/ranger/common/DateUtil.java
index 92150ee..ac29c07 100644
--- a/security-admin/src/main/java/org/apache/ranger/common/DateUtil.java
+++ b/security-admin/src/main/java/org/apache/ranger/common/DateUtil.java
@@ -27,6 +27,7 @@ import java.util.Date;
 import java.util.GregorianCalendar;
 import java.util.TimeZone;
 
+import org.apache.commons.lang.StringUtils;
 import org.springframework.stereotype.Component;
 
 
@@ -113,4 +114,18 @@ public class DateUtil {
                utc.add(Calendar.MILLISECOND, offset);
                return utc.getTime();
        }
+
+       public static Date stringToDate(String dateString, String dateFromat){
+               SimpleDateFormat simpleDateFormat = null;
+               Date date = null;
+               if(!StringUtils.isEmpty(dateString) && 
!StringUtils.isEmpty(dateFromat)){
+                       try{
+                               simpleDateFormat = new 
SimpleDateFormat(dateFromat);
+                               date = simpleDateFormat.parse(dateString);
+                       }catch(Exception ex){
+                               return null;
+                       }
+               }
+           return date;
+         }
 }

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/da3a3233/security-admin/src/main/java/org/apache/ranger/db/XXDataHistDao.java
----------------------------------------------------------------------
diff --git 
a/security-admin/src/main/java/org/apache/ranger/db/XXDataHistDao.java 
b/security-admin/src/main/java/org/apache/ranger/db/XXDataHistDao.java
index 07db458..b5e7855 100644
--- a/security-admin/src/main/java/org/apache/ranger/db/XXDataHistDao.java
+++ b/security-admin/src/main/java/org/apache/ranger/db/XXDataHistDao.java
@@ -18,15 +18,13 @@
 package org.apache.ranger.db;
 
 import java.util.ArrayList;
+import java.util.Date;
 import java.util.List;
 
 import javax.persistence.NoResultException;
-import javax.persistence.Query;
-
-import org.apache.ranger.biz.RangerBizUtil;
-import org.apache.ranger.common.AppConstants;
 import org.apache.ranger.common.db.BaseDao;
 import org.apache.ranger.entity.XXDataHist;
+import org.apache.ranger.common.DateUtil;
 
 public class XXDataHistDao extends BaseDao<XXDataHist> {
 
@@ -53,26 +51,17 @@ public class XXDataHistDao extends BaseDao<XXDataHist> {
                if (eventTime == null || objId == null) {
                        return null;
                }
+               Date 
date=DateUtil.stringToDate(eventTime,"yyyy-MM-dd'T'HH:mm:ss'Z'");
+               if(date==null){
+                       return null;
+               }
                try {
-
-                       int dbFlavor = RangerBizUtil.getDBFlavor();
-
-                       String queryStr = "";
-
-                       if (dbFlavor == AppConstants.DB_FLAVOR_ORACLE) {
-                               queryStr = "select obj.* from x_data_hist obj 
where obj.obj_class_type = " + classType
-                                               + " and obj.obj_id = " + objId
-                                               + " and 
to_date(obj.create_time, 'YYYY-MM-DD\"T\"HH24:MI:SS\"Z\"') <= to_date('" + 
eventTime
-                                               + "', 
'YYYY-MM-DD\"T\"HH24:MI:SS\"Z\"') ORDER BY obj.id DESC";
-                       } else {
-                               queryStr = "select obj.* from x_data_hist obj 
where obj.obj_class_type = " + classType
-                                               + " and obj.obj_id = " + objId 
+ " and obj.create_time <= '" + eventTime
-                                               + "' ORDER BY obj.id DESC";
-                       }
-
-                       Query jpaQuery = 
getEntityManager().createNativeQuery(queryStr, tClass).setMaxResults(1);
-                       
-                       return (XXDataHist) jpaQuery.getSingleResult();
+                       return getEntityManager()
+                                       
.createNamedQuery("XXDataHist.findLatestByObjectClassTypeAndObjectIdAndEventTime",
 tClass)
+                                       .setParameter("classType", classType)
+                                       .setParameter("objectId", objId)
+                                       .setParameter("createTime", date)
+                                       .setMaxResults(1).getSingleResult();
                } catch (NoResultException e) {
                        return null;
                }

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/da3a3233/security-admin/src/main/java/org/apache/ranger/db/XXPortalUserDao.java
----------------------------------------------------------------------
diff --git 
a/security-admin/src/main/java/org/apache/ranger/db/XXPortalUserDao.java 
b/security-admin/src/main/java/org/apache/ranger/db/XXPortalUserDao.java
index 393252c..fe9b32b 100644
--- a/security-admin/src/main/java/org/apache/ranger/db/XXPortalUserDao.java
+++ b/security-admin/src/main/java/org/apache/ranger/db/XXPortalUserDao.java
@@ -101,17 +101,4 @@ public class XXPortalUserDao extends BaseDao<XXPortalUser> 
{
                }
 
        }
-       @SuppressWarnings("unchecked")
-       public List<String> findXPortalUserRolebyXPortalUserId(Long userId)
-       {
-               try {
-                       return getEntityManager()
-                                       .createNativeQuery("select user_role 
from x_portal_user_role where user_id="+userId+"")
-                                       .getResultList();
-
-               } catch (Exception e) {
-                       return null;
-               }
-
-       }
 }

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/da3a3233/security-admin/src/main/java/org/apache/ranger/db/XXPortalUserRoleDao.java
----------------------------------------------------------------------
diff --git 
a/security-admin/src/main/java/org/apache/ranger/db/XXPortalUserRoleDao.java 
b/security-admin/src/main/java/org/apache/ranger/db/XXPortalUserRoleDao.java
index 99d0fe2..569814f 100644
--- a/security-admin/src/main/java/org/apache/ranger/db/XXPortalUserRoleDao.java
+++ b/security-admin/src/main/java/org/apache/ranger/db/XXPortalUserRoleDao.java
@@ -56,4 +56,18 @@ public class XXPortalUserRoleDao extends 
BaseDao<XXPortalUserRole> {
                }
                return null;
        }
+       @SuppressWarnings("unchecked")
+       public List<String> findXPortalUserRolebyXPortalUserId(Long userId) {
+               if (userId == null) {
+                       return new ArrayList<String>();
+               }
+               try {
+                       List<String> returnList = getEntityManager()
+                                       
.createNamedQuery("XXPortalUserRole.findXPortalUserRolebyXPortalUserId")
+                                       .setParameter("userId", 
userId).getResultList();
+                       return returnList;
+               } catch (NoResultException e) {
+                       return new ArrayList<String>();
+               }
+       }
 }

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/da3a3233/security-admin/src/main/java/org/apache/ranger/patch/PatchPersmissionModel_J10003.java
----------------------------------------------------------------------
diff --git 
a/security-admin/src/main/java/org/apache/ranger/patch/PatchPersmissionModel_J10003.java
 
b/security-admin/src/main/java/org/apache/ranger/patch/PatchPersmissionModel_J10003.java
index 804d08e..764bb5d 100644
--- 
a/security-admin/src/main/java/org/apache/ranger/patch/PatchPersmissionModel_J10003.java
+++ 
b/security-admin/src/main/java/org/apache/ranger/patch/PatchPersmissionModel_J10003.java
@@ -81,7 +81,7 @@ public class PatchPersmissionModel_J10003 extends BaseLoader {
                for (XXPortalUser xPortalUser : allPortalUser) {
                        VXPortalUser vPortalUser = 
xPortalUserService.populateViewBean(xPortalUser);
                        vPortalUsers.add(vPortalUser);
-                       
vPortalUser.setUserRoleList(daoManager.getXXPortalUser().findXPortalUserRolebyXPortalUserId(vPortalUser.getId()));
+                       
vPortalUser.setUserRoleList(daoManager.getXXPortalUserRole().findXPortalUserRolebyXPortalUserId(vPortalUser.getId()));
                        xUserMgr.assignPermissionToUser(vPortalUser, false);
                        countUserPermissionUpdated += 1;
                        logger.info("Permissions assigned/updated on base of 
User's Role, UserId [" + xPortalUser.getId() + "]");

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/da3a3233/security-admin/src/main/resources/META-INF/jpa_named_queries.xml
----------------------------------------------------------------------
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 469a400..0f65243 100644
--- a/security-admin/src/main/resources/META-INF/jpa_named_queries.xml
+++ b/security-admin/src/main/resources/META-INF/jpa_named_queries.xml
@@ -1005,4 +1005,12 @@
        <named-query name="XXAccessAudit.getByIdRange">
                <query>select obj from XXAccessAudit obj WHERE obj.id &gt; 
:idFrom AND obj.id &lt; :idTo</query>
     </named-query>
+       <named-query 
name="XXDataHist.findLatestByObjectClassTypeAndObjectIdAndEventTime">
+               <query>select obj from XXDataHist obj where obj.objectId = 
:objectId and 
+               obj.objectClassType = :classType and 
+               obj.createTime &lt;= :createTime ORDER BY obj.id DESC</query>
+       </named-query>
+       <named-query name="XXPortalUserRole.findXPortalUserRolebyXPortalUserId">
+               <query>select obj.userRole from XXPortalUserRole obj where 
obj.userId = :userId</query>
+       </named-query>
 </entity-mappings>

Reply via email to