Index: lams_common/src/java/org/lamsfoundation/lams/usermanagement/service/IUserManagementService.java =================================================================== diff -u -re1ca1dd14914eaa08c50ba33698e4bdbd9738840 -r3d71a49e4ac4155d5624c517ec35da85ced50af3 --- lams_common/src/java/org/lamsfoundation/lams/usermanagement/service/IUserManagementService.java (.../IUserManagementService.java) (revision e1ca1dd14914eaa08c50ba33698e4bdbd9738840) +++ lams_common/src/java/org/lamsfoundation/lams/usermanagement/service/IUserManagementService.java (.../IUserManagementService.java) (revision 3d71a49e4ac4155d5624c517ec35da85ced50af3) @@ -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 =================================================================== diff -u -r8c9d0522d72f7555032707bf54672e5330e5070c -r3d71a49e4ac4155d5624c517ec35da85ced50af3 --- lams_common/src/java/org/lamsfoundation/lams/usermanagement/service/UserManagementService.java (.../UserManagementService.java) (revision 8c9d0522d72f7555032707bf54672e5330e5070c) +++ lams_common/src/java/org/lamsfoundation/lams/usermanagement/service/UserManagementService.java (.../UserManagementService.java) (revision 3d71a49e4ac4155d5624c517ec35da85ced50af3) @@ -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; + } }