=== modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/user/UserStore.java' --- dhis-2/dhis-api/src/main/java/org/hisp/dhis/user/UserStore.java 2010-10-30 08:20:17 +0000 +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/user/UserStore.java 2010-12-06 14:13:48 +0000 @@ -29,6 +29,7 @@ import java.util.Collection; +import org.hisp.dhis.dataelement.DataElement; import org.hisp.dhis.organisationunit.OrganisationUnit; /** @@ -103,15 +104,16 @@ */ void deleteUser( User user ); - Collection getAllUsers( int from, int to ); - Collection searchUsersByName( String key ); - Collection searchUsersByName( String key, int from, int to ); - - int countNumberOfSearchUsersByName( String key ); - - int countAllUsers(); + Collection getUsersBetween( int first, int max ); + + Collection getUsersBetweenByName( String name, int first, int max ); + + int getUserCount(); + + int getUserCountByName( String name ); + // ------------------------------------------------------------------------- // UserCredentials @@ -253,5 +255,13 @@ * @param userSetting the UserSetting to delete. */ void deleteUserSetting( UserSetting userSetting ); - + + Collection getUserRolesBetween( int first, int max ); + + Collection getUserRolesBetweenByName( String name, int first, int max ); + + int getUserRoleCount(); + + int getUserRoleCountByName( String name ); + } === 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 2010-10-30 08:20:17 +0000 +++ dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/user/hibernate/HibernateUserStore.java 2010-12-06 14:13:48 +0000 @@ -38,6 +38,8 @@ import org.hibernate.criterion.Order; import org.hibernate.criterion.Projections; import org.hibernate.criterion.Restrictions; +import org.hisp.dhis.common.GenericIdentifiableObjectStore; +import org.hisp.dhis.datadictionary.DataDictionary; import org.hisp.dhis.organisationunit.OrganisationUnit; import org.hisp.dhis.system.util.AuditLogLevel; import org.hisp.dhis.system.util.AuditLogUtil; @@ -76,6 +78,18 @@ { this.currentUserService = currentUserService; } + + private GenericIdentifiableObjectStore userRoleStore; + + public GenericIdentifiableObjectStore getUserRoleStore() + { + return userRoleStore; + } + + public void setUserRoleStore( GenericIdentifiableObjectStore userRoleStore ) + { + this.userRoleStore = userRoleStore; + } // ------------------------------------------------------------------------- // User @@ -122,14 +136,6 @@ return session.createQuery( "from User" ).list(); } - @SuppressWarnings( "unchecked" ) - public Collection getAllUsers( int from, int to ) - { - Session session = sessionFactory.getCurrentSession(); - - return session.createQuery( "from User" ).setFirstResult( from ).setMaxResults( to ).list(); - } - public Collection getUsersByOrganisationUnit( OrganisationUnit organisationUnit ) { Collection users = getAllUsers(); @@ -188,17 +194,6 @@ User.class.getSimpleName(), user.getName()) ); } - - public int countAllUsers() - { - Session session = sessionFactory.getCurrentSession(); - - Query query = session.createQuery( "select count(*) from User" ); - - Number rs = (Number) query.uniqueResult(); - - return rs != null ? rs.intValue() : 0; - } // ------------------------------------------------------------------------- // UserCredentials // ------------------------------------------------------------------------- @@ -367,28 +362,24 @@ return criteria.list(); } - @SuppressWarnings( "unchecked" ) - public Collection searchUsersByName( String key, int from, int to ){ - + public int getUserCount() + { Session session = sessionFactory.getCurrentSession(); - - Criteria criteria = session.createCriteria( UserCredentials.class ); - - criteria.add( Restrictions.ilike( "username", "%" + key + "%" ) ); - criteria.addOrder( Order.asc( "username" ) ); - criteria.setFirstResult( from ); - criteria.setMaxResults( to ); - - return criteria.list(); + + Query query = session.createQuery( "select count(*) from User" ); + + Number rs = (Number) query.uniqueResult(); + + return rs != null ? rs.intValue() : 0; } - - public int countNumberOfSearchUsersByName( String key ) + + public int getUserCountByName( String name ) { Session session = sessionFactory.getCurrentSession(); Criteria criteria = session.createCriteria( UserCredentials.class ); - criteria.add( Restrictions.ilike( "username", "%" + key + "%" ) ); + criteria.add( Restrictions.ilike( "username", "%" + name + "%" ) ); criteria.setProjection( Projections.rowCount() ).uniqueResult(); @@ -396,4 +387,45 @@ return rs != null ? rs.intValue() : 0; } + + public Collection getUsersBetween( int first, int max ) + { + Session session = sessionFactory.getCurrentSession(); + + return session.createQuery( "from UserCredentials" ).setFirstResult( first ).setMaxResults( max ).list(); + } + + public Collection getUsersBetweenByName( String name, int first, int max ) + { + Session session = sessionFactory.getCurrentSession(); + + Criteria criteria = session.createCriteria( UserCredentials.class ); + + criteria.add( Restrictions.ilike( "username", "%" + name + "%" ) ); + criteria.addOrder( Order.asc( "username" ) ); + criteria.setFirstResult( first ); + criteria.setMaxResults( max ); + + return criteria.list(); + } + + public int getUserRoleCount() + { + return userRoleStore.getCount(); + } + + public int getUserRoleCountByName( String name ) + { + return userRoleStore.getCountByName( name ); + } + + public Collection getUserRolesBetween( int first, int max ) + { + return userRoleStore.getBetween( first, max ); + } + + public Collection getUserRolesBetweenByName( String name, int first, int max ) + { + return userRoleStore.getBetweenByName( name, first, max ); + } } === modified file 'dhis-2/dhis-services/dhis-service-core/src/main/resources/META-INF/dhis/beans.xml' --- dhis-2/dhis-services/dhis-service-core/src/main/resources/META-INF/dhis/beans.xml 2010-11-27 09:37:29 +0000 +++ dhis-2/dhis-services/dhis-service-core/src/main/resources/META-INF/dhis/beans.xml 2010-12-06 14:13:48 +0000 @@ -186,6 +186,7 @@ + @@ -203,6 +204,12 @@ class="org.hisp.dhis.aggregation.jdbc.JdbcAggregatedDataValueStore"> + + + + + + === modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-user/src/main/java/org/hisp/dhis/user/action/GetRoleListAction.java' --- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-user/src/main/java/org/hisp/dhis/user/action/GetRoleListAction.java 2010-04-12 21:23:33 +0000 +++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-user/src/main/java/org/hisp/dhis/user/action/GetRoleListAction.java 2010-12-06 14:13:48 +0000 @@ -27,10 +27,15 @@ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +import static org.apache.commons.lang.StringUtils.isNotBlank; + import java.util.ArrayList; import java.util.List; +import org.hisp.dhis.paging.ActionPagingSupport; +import org.hisp.dhis.user.User; import org.hisp.dhis.user.UserAuthorityGroup; +import org.hisp.dhis.user.UserCredentials; import org.hisp.dhis.user.UserStore; import com.opensymphony.xwork2.Action; @@ -40,7 +45,7 @@ * @version $Id: GetRoleListAction.java 4079 2007-11-20 11:42:23Z larshelg $ */ public class GetRoleListAction - implements Action + extends ActionPagingSupport { // ------------------------------------------------------------------------- // Dependencies @@ -54,7 +59,7 @@ } // ------------------------------------------------------------------------- - // Output + // Input & Output // ------------------------------------------------------------------------- private List userAuthorityGroups; @@ -63,6 +68,18 @@ { return userAuthorityGroups; } + + private String key; + + public void setKey( String key ) + { + this.key = key; + } + + public String getKey() + { + return key; + } // ------------------------------------------------------------------------- // Action implementation @@ -71,7 +88,19 @@ public String execute() throws Exception { - userAuthorityGroups = new ArrayList( userStore.getAllUserAuthorityGroups() ); + + if ( isNotBlank( key ) ) // Filter on key only if set + { + this.paging = createPaging( userStore.getUserRoleCountByName( key ) ); + + userAuthorityGroups = new ArrayList( userStore.getUserRolesBetweenByName( key, paging.getStartPos(), paging.getPageSize() ) ); + } + else + { + this.paging = createPaging( userStore.getUserRoleCount() ); + + userAuthorityGroups = new ArrayList( userStore.getUserRolesBetween( paging.getStartPos(), paging.getPageSize() ) ); + } return SUCCESS; } === modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-user/src/main/java/org/hisp/dhis/user/action/GetUserListAction.java' --- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-user/src/main/java/org/hisp/dhis/user/action/GetUserListAction.java 2010-10-30 08:20:17 +0000 +++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-user/src/main/java/org/hisp/dhis/user/action/GetUserListAction.java 2010-12-06 14:13:48 +0000 @@ -27,8 +27,9 @@ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +import static org.apache.commons.lang.StringUtils.isNotBlank; + import java.util.ArrayList; -import java.util.Collection; import java.util.Collections; import java.util.List; @@ -65,7 +66,7 @@ } // ------------------------------------------------------------------------- - // Output + // Input & Output // ------------------------------------------------------------------------- private List userCredentialsList; @@ -101,47 +102,25 @@ public String execute() throws Exception { - this.paging = createPaging( userStore.countAllUsers() ); - - Collection users = userStore.getAllUsers( paging.getStartPos(), paging.getPageSize() ); - - userCredentialsList = new ArrayList(); - - for ( User user : users ) - { - UserCredentials userCredentials = userStore.getUserCredentials( user ); - - userCredentials.getUser(); - - userCredentialsList.add( userCredentials ); - } - - Collections.sort( userCredentialsList, new UsernameComparator() ); - User currentUser = userStore.getUser( currentUserService.getCurrentUser().getId() ); - UserCredentials userCredentials = userStore.getUserCredentials( currentUser ); - - currentUserName = userCredentials.getUsername(); - return SUCCESS; - } - - public String searchUserByName() - { - if ( key.isEmpty() ) - { - return INPUT; - } - - this.paging = createPaging( userStore.countNumberOfSearchUsersByName(key) ); - - userCredentialsList = new ArrayList(userStore.searchUsersByName( key, paging.getStartPos(), paging.getPageSize() )); - - Collections.sort( userCredentialsList, new UsernameComparator() ); - User currentUser = userStore.getUser( currentUserService.getCurrentUser().getId() ); - UserCredentials userCredentials = userStore.getUserCredentials( currentUser ); - - currentUserName = userCredentials.getUsername(); - - return SUCCESS; - } - + + if ( isNotBlank( key ) ) // Filter on key only if set + { + this.paging = createPaging( userStore.getUserCountByName( key ) ); + + userCredentialsList = new ArrayList( userStore.getUsersBetweenByName( key, paging.getStartPos(), paging.getPageSize() ) ); + } + else + { + this.paging = createPaging( userStore.getUserCount() ); + + userCredentialsList = new ArrayList( userStore.getUsersBetween( paging.getStartPos(), paging.getPageSize() ) ); + } + + Collections.sort( userCredentialsList, new UsernameComparator() ); + User currentUser = userStore.getUser( currentUserService.getCurrentUser().getId() ); + UserCredentials userCredentials = userStore.getUserCredentials( currentUser ); + + currentUserName = userCredentials.getUsername(); + return SUCCESS; + } } === modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-user/src/main/resources/struts.xml' --- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-user/src/main/resources/struts.xml 2010-12-03 05:41:34 +0000 +++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-user/src/main/resources/struts.xml 2010-12-06 14:13:48 +0000 @@ -102,6 +102,7 @@ /dhis-web-maintenance-user/allRole.vm /dhis-web-maintenance-user/menu.vm javascript/role.js,javascript/filterTable.js + ../dhis-web-commons/paging/paging.css === modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-user/src/main/webapp/dhis-web-maintenance-user/allRole.vm' --- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-user/src/main/webapp/dhis-web-maintenance-user/allRole.vm 2010-12-03 05:41:34 +0000 +++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-user/src/main/webapp/dhis-web-maintenance-user/allRole.vm 2010-12-06 14:13:48 +0000 @@ -7,7 +7,7 @@ - +
$i18n.getString( "filter_by_role_name" ):
#filterDiv( "allRole" )
@@ -33,6 +33,11 @@ #end +

+
+ #parse( "/dhis-web-commons/paging/paging.vm" ) +
+ === modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-user/src/main/webapp/dhis-web-maintenance-user/searchUser.vm' --- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-user/src/main/webapp/dhis-web-maintenance-user/searchUser.vm 2010-12-03 05:41:34 +0000 +++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-user/src/main/webapp/dhis-web-maintenance-user/searchUser.vm 2010-12-06 14:13:48 +0000 @@ -1,31 +1,9 @@ - - -
- - - - -
-
- #parse( "/dhis-web-commons/paging/paging.vm" ) -
-
-
- - - +
$i18n.getString( "filter_by_username" ): -
-
- - -
-
-
#filterDiv( "alluser" )