=== 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 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 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 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 ) );