Index: lams_common/src/java/org/lamsfoundation/lams/usermanagement/service/IUserManagementService.java =================================================================== RCS file: /usr/local/cvsroot/lams_common/src/java/org/lamsfoundation/lams/usermanagement/service/IUserManagementService.java,v diff -u -r1.43.2.2 -r1.43.2.3 --- lams_common/src/java/org/lamsfoundation/lams/usermanagement/service/IUserManagementService.java 30 Mar 2007 00:09:30 -0000 1.43.2.2 +++ lams_common/src/java/org/lamsfoundation/lams/usermanagement/service/IUserManagementService.java 25 Jul 2007 07:39:17 -0000 1.43.2.3 @@ -189,7 +189,8 @@ public OrganisationDTO getOrganisationsForUserByRole(User user, List restrictToRoleNames, Integer courseId, List restrictToClassIds); /** - * Gets an organisation for a user, with the user's roles. Doesn't not return a tree of organisations + * Gets an organisation for a user, with the user's roles. Doesn't not return a tree of organisations. + * If there aren't any roles for this user, it will return just the basic org details. */ public OrganisationDTO getOrganisationForUserWithRole(User user, Integer organisationId); Index: lams_common/src/java/org/lamsfoundation/lams/usermanagement/service/UserManagementService.java =================================================================== RCS file: /usr/local/cvsroot/lams_common/src/java/org/lamsfoundation/lams/usermanagement/service/UserManagementService.java,v diff -u -r1.71.2.3 -r1.71.2.4 --- lams_common/src/java/org/lamsfoundation/lams/usermanagement/service/UserManagementService.java 7 Jun 2007 01:28:49 -0000 1.71.2.3 +++ lams_common/src/java/org/lamsfoundation/lams/usermanagement/service/UserManagementService.java 25 Jul 2007 07:39:17 -0000 1.71.2.4 @@ -273,19 +273,32 @@ /** * Gets an organisation for a user, with the user's roles. Doesn't not return a tree of organisations. - * Will not return the organisation if there isn't any roles for this user. + * If there aren't any roles for this user, it will return just the basic org details. This is done + * to make the call work in Monitor for a shibboleth user (without having to change Flash code). */ public OrganisationDTO getOrganisationForUserWithRole(User user, Integer organisationId) { + + OrganisationDTO dto = null; + if ( user != null && organisationId !=null ) { Map map = new HashMap(); map.put("user.userId",user.getUserId()); map.put("organisation.organisationId",organisationId); - UserOrganisation userOrganisation = (UserOrganisation)baseDAO.findByProperties(UserOrganisation.class,map).get(0); - OrganisationDTO dto = userOrganisation.getOrganisation().getOrganisationDTO(); - addRolesToDTO(null, userOrganisation, dto); - return dto; + + List userOrgs = baseDAO.findByProperties(UserOrganisation.class,map); + if ( userOrgs != null && userOrgs.size() > 0 ) { + UserOrganisation userOrganisation = (UserOrganisation) userOrgs.get(0); + dto = userOrganisation.getOrganisation().getOrganisationDTO(); + addRolesToDTO(null, userOrganisation, dto); + } else { + Organisation org = (Organisation) baseDAO.find(Organisation.class, organisationId); + if ( org != null ) { + dto = org.getOrganisationDTO(); + } + } } - return null; + + return dto; } /**