=== modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/user/UserCredentials.java' --- dhis-2/dhis-api/src/main/java/org/hisp/dhis/user/UserCredentials.java 2015-11-17 19:46:11 +0000 +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/user/UserCredentials.java 2015-12-30 14:01:35 +0000 @@ -290,6 +290,25 @@ return programs; } + + /** + * Indicates if the given program is accessible. + * + * @param program the program. + * @return true if if the given program is accessible. + */ + public boolean canAccessProgram( Program program ) + { + for ( UserAuthorityGroup group : userAuthorityGroups ) + { + if ( group.getPrograms().contains( program ) ) + { + return true; + } + } + + return false; + } /** * Indicates whether this user credentials can issue the given user authority === modified file 'dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/events/event/AbstractEventService.java' --- dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/events/event/AbstractEventService.java 2015-12-16 12:46:52 +0000 +++ dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/events/event/AbstractEventService.java 2015-12-30 14:01:35 +0000 @@ -541,12 +541,7 @@ } } - if ( pr != null && !userCredentials.isSuper() && userCredentials.getAllPrograms().size() == 0 ) - { - throw new IllegalQueryException( "User has no access to programs" ); - } - - if ( pr != null && !userCredentials.getAllPrograms().contains( pr ) ) + if ( pr != null && !userCredentials.isSuper() && !userCredentials.canAccessProgram( pr ) ) { throw new IllegalQueryException( "User has no access to program: " + pr.getUid() ); }