=== modified file 'dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/api/controller/user/CurrentUserController.java' --- dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/api/controller/user/CurrentUserController.java 2013-09-03 15:24:51 +0000 +++ dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/api/controller/user/CurrentUserController.java 2013-09-04 07:49:25 +0000 @@ -306,9 +306,9 @@ JacksonUtils.toJsonWithView( response.getOutputStream(), userOrganisationUnits, viewClass ); } - @RequestMapping( value = { "/assignedPrograms" }, produces = { "application/json", "text/*" } ) + @RequestMapping(value = { "/assignedPrograms" }, produces = { "application/json", "text/*" }) public void getPrograms( HttpServletResponse response, @RequestParam Map parameters, - @RequestParam( defaultValue = "1" ) Integer type ) + @RequestParam(defaultValue = "1") Integer type ) throws IOException, NotAuthenticatedException { User currentUser = currentUserService.getCurrentUser(); @@ -321,6 +321,7 @@ Set userOrganisationUnits = new HashSet(); Set organisationUnits = new HashSet(); Set programs = new HashSet(); + List userPrograms = new ArrayList( programService.getProgramsByCurrentUser( Program.SINGLE_EVENT_WITHOUT_REGISTRATION ) ); Map> programAssociations = new HashMap>(); if ( currentUser.getOrganisationUnits().isEmpty() && currentUser.getUserCredentials().getAllAuthorities().contains( "ALL" ) ) @@ -354,9 +355,15 @@ if ( !ouPrograms.isEmpty() ) { - organisationUnits.add( organisationUnit ); - programs.addAll( ouPrograms ); - programAssociations.put( organisationUnit.getUid(), ouPrograms ); + for ( Program program : ouPrograms ) + { + if ( userPrograms.contains( program ) ) + { + organisationUnits.add( organisationUnit ); + programs.addAll( ouPrograms ); + programAssociations.put( organisationUnit.getUid(), ouPrograms ); + } + } } }