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.28 -r1.29 --- lams_common/src/java/org/lamsfoundation/lams/usermanagement/service/IUserManagementService.java 6 Jul 2006 06:48:00 -0000 1.28 +++ lams_common/src/java/org/lamsfoundation/lams/usermanagement/service/IUserManagementService.java 18 Jul 2006 01:35:42 -0000 1.29 @@ -30,6 +30,7 @@ import java.util.Vector; import org.lamsfoundation.lams.usermanagement.Organisation; +import org.lamsfoundation.lams.usermanagement.OrganisationType; import org.lamsfoundation.lams.usermanagement.Role; import org.lamsfoundation.lams.usermanagement.SupportedLocale; import org.lamsfoundation.lams.usermanagement.User; @@ -281,4 +282,12 @@ * @return SupportedLocale */ public SupportedLocale getSupportedLocale(String language, String country); + + /** + * + * @param orgType + * @param sysadmin + * @return a list of roles according to the organisation type and whether you want sysadmin or not + */ + public List getRolesForOrgType(OrganisationType orgType, Boolean sysadmin); } 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.41 -r1.42 --- lams_common/src/java/org/lamsfoundation/lams/usermanagement/service/UserManagementService.java 10 Jul 2006 06:52:43 -0000 1.41 +++ lams_common/src/java/org/lamsfoundation/lams/usermanagement/service/UserManagementService.java 18 Jul 2006 01:35:42 -0000 1.42 @@ -447,4 +447,21 @@ List results = findByProperties(SupportedLocale.class,properties); return results.isEmpty() ? null : (SupportedLocale)results.get(0); } + + public List getRolesForOrgType(OrganisationType orgType, Boolean sysadmin) { + List allRoles = findAll(Role.class); + Role role = new Role(); + if(!sysadmin) { + role.setRoleId(Role.ROLE_SYSADMIN); + allRoles.remove(role); + } + if(orgType.getOrganisationTypeId().equals(OrganisationType.CLASS_TYPE)) { + role = new Role(); + role.setRoleId(Role.ROLE_COURSE_ADMIN); + allRoles.remove(role); + role.setRoleId(Role.ROLE_COURSE_MANAGER); + allRoles.remove(role); + } + return allRoles; + } }