=== modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/user/UserService.java' --- dhis-2/dhis-api/src/main/java/org/hisp/dhis/user/UserService.java 2014-12-22 11:16:13 +0000 +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/user/UserService.java 2014-12-23 09:38:34 +0000 @@ -40,20 +40,11 @@ /** * @author Chau Thu Tran - * @version $Id$ */ public interface UserService { String ID = UserService.class.getName(); - boolean isSuperUser( UserCredentials userCredentials ); - - boolean isLastSuperUser( UserCredentials userCredentials ); - - boolean isSuperRole( UserAuthorityGroup userAuthorityGroup ); - - boolean isLastSuperRole( UserAuthorityGroup userAuthorityGroup ); - // ------------------------------------------------------------------------- // User // ------------------------------------------------------------------------- @@ -169,6 +160,20 @@ */ public Set getCoDimensionConstraints( UserCredentials userCredentials ); + boolean isSuperUser( UserCredentials userCredentials ); + + boolean isLastSuperUser( UserCredentials userCredentials ); + + boolean isSuperRole( UserAuthorityGroup userAuthorityGroup ); + + boolean isLastSuperRole( UserAuthorityGroup userAuthorityGroup ); + + Collection getUsersByName( String name ); + + Collection getUsernames( String query, Integer max ); + + int countDataSetUserAuthorityGroups( DataSet dataSet ); + // ------------------------------------------------------------------------- // UserCredentials // ------------------------------------------------------------------------- @@ -308,7 +313,9 @@ * @return true if current user can update this user, else false. */ boolean canUpdate( UserCredentials userCredentials ); - + + boolean credentialsNonExpired( UserCredentials credentials ); + // ------------------------------------------------------------------------- // UserAuthorityGroup // ------------------------------------------------------------------------- @@ -401,12 +408,4 @@ * @param userRoles the collection of user roles. */ void canIssueFilter( Collection userRoles ); - - Collection getUsersByName( String name ); - - Collection getUsernames( String query, Integer max ); - - int countDataSetUserAuthorityGroups( DataSet dataSet ); - - boolean credentialsNonExpired( UserCredentials credentials ); } === 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-22 11:16:13 +0000 +++ dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/user/DefaultUserService.java 2014-12-23 09:38:34 +0000 @@ -121,75 +121,8 @@ } // ------------------------------------------------------------------------- - // Implementing methods + // UserService implementation // ------------------------------------------------------------------------- - - @Override - public boolean isSuperUser( UserCredentials userCredentials ) - { - if ( userCredentials == null ) - { - return false; - } - - for ( UserAuthorityGroup group : userCredentials.getUserAuthorityGroups() ) - { - if ( group.getAuthorities().contains( "ALL" ) ) - { - return true; - } - } - - return false; - } - - @Override - public boolean isLastSuperUser( UserCredentials userCredentials ) - { - if ( !isSuperUser( userCredentials ) ) - { - return false; // Cannot be last if not super user - } - - Collection users = userCredentialsStore.getAllUserCredentials(); - - for ( UserCredentials user : users ) - { - if ( isSuperUser( user ) && !user.equals( userCredentials ) ) - { - return false; - } - } - - return true; - } - - @Override - public boolean isSuperRole( UserAuthorityGroup userAuthorityGroup ) - { - if ( userAuthorityGroup == null ) - { - return false; - } - - return ( userAuthorityGroup.getAuthorities().contains( "ALL" ) ); - } - - @Override - public boolean isLastSuperRole( UserAuthorityGroup userAuthorityGroup ) - { - Collection groups = userAuthorityGroupStore.getAll(); - - for ( UserAuthorityGroup group : groups ) - { - if ( isSuperRole( group ) && group.getId() != userAuthorityGroup.getId() ) - { - return false; - } - } - - return true; - } // ------------------------------------------------------------------------- // User @@ -389,6 +322,91 @@ return options; } + @Override + public Collection getUsersByOrganisationUnits( Collection units ) + { + return userStore.getUsersByOrganisationUnits( units ); + } + + @Override + public Collection getUsernames( String query, Integer max ) + { + return userCredentialsStore.getUsernames( query, max ); + } + + @Override + public int countDataSetUserAuthorityGroups( DataSet dataSet ) + { + return userAuthorityGroupStore.countDataSetUserAuthorityGroups( dataSet ); + } + + @Override + public boolean isSuperUser( UserCredentials userCredentials ) + { + if ( userCredentials == null ) + { + return false; + } + + for ( UserAuthorityGroup group : userCredentials.getUserAuthorityGroups() ) + { + if ( group.getAuthorities().contains( "ALL" ) ) + { + return true; + } + } + + return false; + } + + @Override + public boolean isLastSuperUser( UserCredentials userCredentials ) + { + if ( !isSuperUser( userCredentials ) ) + { + return false; // Cannot be last if not super user + } + + Collection users = userCredentialsStore.getAllUserCredentials(); + + for ( UserCredentials user : users ) + { + if ( isSuperUser( user ) && !user.equals( userCredentials ) ) + { + return false; + } + } + + return true; + } + + @Override + public boolean isSuperRole( UserAuthorityGroup userAuthorityGroup ) + { + if ( userAuthorityGroup == null ) + { + return false; + } + + return ( userAuthorityGroup.getAuthorities().contains( "ALL" ) ); + } + + @Override + public boolean isLastSuperRole( UserAuthorityGroup userAuthorityGroup ) + { + Collection groups = userAuthorityGroupStore.getAll(); + + for ( UserAuthorityGroup group : groups ) + { + if ( isSuperRole( group ) && group.getId() != userAuthorityGroup.getId() ) + { + return false; + } + } + + return true; + } + // ------------------------------------------------------------------------- // UserAuthorityGroup // ------------------------------------------------------------------------- @@ -699,28 +717,6 @@ return hasAuthorityToUpdateUser( userCredentials ); } - // ------------------------------------------------------------------------- - // UserSettings - // ------------------------------------------------------------------------- - - @Override - public Collection getUsersByOrganisationUnits( Collection units ) - { - return userStore.getUsersByOrganisationUnits( units ); - } - - @Override - public Collection getUsernames( String query, Integer max ) - { - return userCredentialsStore.getUsernames( query, max ); - } - - @Override - public int countDataSetUserAuthorityGroups( DataSet dataSet ) - { - return userAuthorityGroupStore.countDataSetUserAuthorityGroups( dataSet ); - } - @Override public boolean credentialsNonExpired( UserCredentials credentials ) {