← Back to team overview

dhis2-devs team mailing list archive

[Branch ~dhis2-devs-core/dhis2/trunk] Rev 17811: User query, impl support for last login

 

------------------------------------------------------------
revno: 17811
committer: Lars Helge Overland <larshelge@xxxxxxxxx>
branch nick: dhis2
timestamp: Sun 2014-12-28 15:39:07 +0100
message:
  User query, impl support for last login
modified:
  dhis-2/dhis-api/src/main/java/org/hisp/dhis/user/UserCredentialsStore.java
  dhis-2/dhis-api/src/main/java/org/hisp/dhis/user/UserQueryParams.java
  dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/user/DefaultUserService.java
  dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/user/hibernate/HibernateUserCredentialsStore.java
  dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/user/hibernate/HibernateUserStore.java
  dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/java/org/hisp/dhis/dataadmin/action/statistics/GetStatisticsAction.java


--
lp:dhis2
https://code.launchpad.net/~dhis2-devs-core/dhis2/trunk

Your team DHIS 2 developers is subscribed to branch lp:dhis2.
To unsubscribe from this branch go to https://code.launchpad.net/~dhis2-devs-core/dhis2/trunk/+edit-subscription
=== modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/user/UserCredentialsStore.java'
--- dhis-2/dhis-api/src/main/java/org/hisp/dhis/user/UserCredentialsStore.java	2014-12-28 14:15:49 +0000
+++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/user/UserCredentialsStore.java	2014-12-28 14:39:07 +0000
@@ -116,8 +116,6 @@
 
     int getInactiveUsersCount( Date date );
 
-    int getActiveUsersCount( Date date );
-
     int getUserCount();
 
     int getUserCountByName( String name );

=== modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/user/UserQueryParams.java'
--- dhis-2/dhis-api/src/main/java/org/hisp/dhis/user/UserQueryParams.java	2014-12-28 14:15:49 +0000
+++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/user/UserQueryParams.java	2014-12-28 14:39:07 +0000
@@ -47,6 +47,8 @@
     
     private boolean disjointRoles;
     
+    private Date lastLogin;
+    
     private Date inactiveSince;
     
     private Integer inactiveMonths;
@@ -126,6 +128,16 @@
         this.disjointRoles = disjointRoles;
     }
 
+    public Date getLastLogin()
+    {
+        return lastLogin;
+    }
+
+    public void setLastLogin( Date lastLogin )
+    {
+        this.lastLogin = lastLogin;
+    }
+
     public Date getInactiveSince()
     {
         return inactiveSince;

=== modified file 'dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/user/DefaultUserService.java'
--- dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/user/DefaultUserService.java	2014-12-28 14:15:49 +0000
+++ dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/user/DefaultUserService.java	2014-12-28 14:39:07 +0000
@@ -667,6 +667,24 @@
     }
 
     @Override
+    public int getActiveUsersCount( int days )
+    {
+        Calendar cal = PeriodType.createCalendarInstance();
+        cal.add( Calendar.DAY_OF_YEAR, (days * -1) );
+
+        return getActiveUsersCount( cal.getTime() );
+    }
+
+    @Override
+    public int getActiveUsersCount( Date since )
+    {
+        UserQueryParams params = new UserQueryParams();
+        params.setLastLogin( since );
+        
+        return getUserCount( params );
+    }
+    
+    @Override
     public Collection<UserCredentials> getSelfRegisteredUserCredentials( int first, int max )
     {
         return userCredentialsStore.getSelfRegisteredUserCredentials( first, max );
@@ -706,21 +724,6 @@
     }
 
     @Override
-    public int getActiveUsersCount( int days )
-    {
-        Calendar cal = PeriodType.createCalendarInstance();
-        cal.add( Calendar.DAY_OF_YEAR, (days * -1) );
-
-        return userCredentialsStore.getActiveUsersCount( cal.getTime() );
-    }
-
-    @Override
-    public int getActiveUsersCount( Date since )
-    {
-        return userCredentialsStore.getActiveUsersCount( since );
-    }
-    
-    @Override
     public void canUpdateUsersFilter( Collection<User> users )
     {
         final UserCredentials currentUserCredentials = currentUserService.getCurrentUser().getUserCredentials();

=== modified file 'dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/user/hibernate/HibernateUserCredentialsStore.java'
--- dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/user/hibernate/HibernateUserCredentialsStore.java	2014-12-28 14:15:49 +0000
+++ dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/user/hibernate/HibernateUserCredentialsStore.java	2014-12-28 14:39:07 +0000
@@ -297,18 +297,6 @@
     }
 
     @Override
-    public int getActiveUsersCount( Date date )
-    {
-        Criteria criteria = sessionFactory.getCurrentSession().createCriteria( UserCredentials.class );
-        criteria.add( Restrictions.ge( "lastLogin", date ) );
-        criteria.setProjection( Projections.rowCount() );
-
-        Number rs = (Number) criteria.uniqueResult();
-
-        return rs != null ? rs.intValue() : 0;
-    }
-
-    @Override
     @SuppressWarnings("unchecked")
     public Collection<String> getUsernames( String key, Integer max )
     {

=== modified file 'dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/user/hibernate/HibernateUserStore.java'
--- dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/user/hibernate/HibernateUserStore.java	2014-12-28 14:15:49 +0000
+++ dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/user/hibernate/HibernateUserStore.java	2014-12-28 14:39:07 +0000
@@ -161,6 +161,11 @@
                 "and ag3.id in (:roles) ) ";
         }
         
+        if ( params.getLastLogin() != null )
+        {
+            hql += hlp.whereAnd() + " uc.lastLogin >= :lastLogin ";
+        }
+        
         if ( params.getInactiveSince() != null )
         {
             hql += hlp.whereAnd() + " uc.lastLogin < :inactiveSince ";
@@ -209,6 +214,11 @@
             query.setParameterList( "roles", roles );
         }
         
+        if ( params.getLastLogin() != null )
+        {
+            query.setDate( "lastLogin", params.getLastLogin() );
+        }
+        
         if ( params.getInactiveSince() != null )
         {
             query.setDate( "inactiveSince", params.getInactiveSince() );

=== modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/java/org/hisp/dhis/dataadmin/action/statistics/GetStatisticsAction.java'
--- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/java/org/hisp/dhis/dataadmin/action/statistics/GetStatisticsAction.java	2014-10-16 06:17:19 +0000
+++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/java/org/hisp/dhis/dataadmin/action/statistics/GetStatisticsAction.java	2014-12-28 14:39:07 +0000
@@ -110,7 +110,7 @@
         Date lastHour = new DateTime().minusHours( 1 ).toDate();
         
         objects = new EnumMapWrapper<>( Objects.class, counts );
-        
+                
         activeUsers.put( 0, userService.getActiveUsersCount( lastHour ) );
         activeUsers.put( 1, userService.getActiveUsersCount( 0 ) );
         activeUsers.put( 2, userService.getActiveUsersCount( 1 ) );