Index: lams_central/src/java/org/lamsfoundation/lams/util/CentralConstants.java =================================================================== diff -u -rb46f761cc1fe299aaeead9f54e5f3e31def7bf51 -rc2a96caab480d04c02dc7a90e719fc0bb9af6a50 --- lams_central/src/java/org/lamsfoundation/lams/util/CentralConstants.java (.../CentralConstants.java) (revision b46f761cc1fe299aaeead9f54e5f3e31def7bf51) +++ lams_central/src/java/org/lamsfoundation/lams/util/CentralConstants.java (.../CentralConstants.java) (revision c2a96caab480d04c02dc7a90e719fc0bb9af6a50) @@ -38,6 +38,8 @@ public static final String PARAM_USERNAME = "username"; public static final String PARAM_COURSE_ID = "courseId"; + + public static final String PARAM_COURSE_NAME = "courseName"; public static final String PARAM_LEARNING_DESIGN_ID = "ldId"; Index: lams_central/src/java/org/lamsfoundation/lams/web/LoginRequestServlet.java =================================================================== diff -u -rb46f761cc1fe299aaeead9f54e5f3e31def7bf51 -rc2a96caab480d04c02dc7a90e719fc0bb9af6a50 --- lams_central/src/java/org/lamsfoundation/lams/web/LoginRequestServlet.java (.../LoginRequestServlet.java) (revision b46f761cc1fe299aaeead9f54e5f3e31def7bf51) +++ lams_central/src/java/org/lamsfoundation/lams/web/LoginRequestServlet.java (.../LoginRequestServlet.java) (revision c2a96caab480d04c02dc7a90e719fc0bb9af6a50) @@ -109,7 +109,7 @@ String method = request.getParameter(LoginRequestDispatcher.PARAM_METHOD); String countryIsoCode = request.getParameter(LoginRequestDispatcher.PARAM_COUNTRY); String langIsoCode = request.getParameter(LoginRequestDispatcher.PARAM_LANGUAGE); - + String courseName = request.getParameter(CentralConstants.PARAM_COURSE_NAME); // implicit login params String firstName = request.getParameter(LoginRequestDispatcher.PARAM_FIRST_NAME); @@ -138,7 +138,7 @@ Authenticator.authenticate(serverMap, timestamp, extUsername, method, hash); - ExtCourseClassMap orgMap = getService().getExtCourseClassMap(serverMap, userMap, extCourseId, countryIsoCode, langIsoCode); + ExtCourseClassMap orgMap = getService().getExtCourseClassMap(serverMap, userMap, extCourseId, countryIsoCode, langIsoCode, courseName); User user = userMap.getUser(); String login = user.getLogin(); //was using hses.inNew() API to check if the external user has logged in yet, Index: lams_central/src/java/org/lamsfoundation/lams/webservice/LearningDesignRepositorySoapBindingImpl.java =================================================================== diff -u -r702e59550fe5cf8fb99232f59c42caab41ca4702 -rc2a96caab480d04c02dc7a90e719fc0bb9af6a50 --- lams_central/src/java/org/lamsfoundation/lams/webservice/LearningDesignRepositorySoapBindingImpl.java (.../LearningDesignRepositorySoapBindingImpl.java) (revision 702e59550fe5cf8fb99232f59c42caab41ca4702) +++ lams_central/src/java/org/lamsfoundation/lams/webservice/LearningDesignRepositorySoapBindingImpl.java (.../LearningDesignRepositorySoapBindingImpl.java) (revision c2a96caab480d04c02dc7a90e719fc0bb9af6a50) @@ -159,7 +159,7 @@ ExtServerOrgMap serverMap = integrationService.getExtServerOrgMap(serverId); Authenticator.authenticate(serverMap, datetime, username, hashValue); ExtUserUseridMap userMap = integrationService.getExtUserUseridMap(serverMap, username); - integrationService.getExtCourseClassMap(serverMap, userMap, courseId, country, lang); + integrationService.getExtCourseClassMap(serverMap, userMap, courseId, country, lang, null); return buildContentTree(userMap.getUser().getUserId(), mode).toString(); } catch (Exception e) { log.debug(e.getMessage(),e); Index: lams_central/src/java/org/lamsfoundation/lams/webservice/LessonManagerSoapBindingImpl.java =================================================================== diff -u -refd174405bfb865071e58c2e3b4831d46b229cd6 -rc2a96caab480d04c02dc7a90e719fc0bb9af6a50 --- lams_central/src/java/org/lamsfoundation/lams/webservice/LessonManagerSoapBindingImpl.java (.../LessonManagerSoapBindingImpl.java) (revision efd174405bfb865071e58c2e3b4831d46b229cd6) +++ lams_central/src/java/org/lamsfoundation/lams/webservice/LessonManagerSoapBindingImpl.java (.../LessonManagerSoapBindingImpl.java) (revision c2a96caab480d04c02dc7a90e719fc0bb9af6a50) @@ -69,7 +69,7 @@ Authenticator.authenticate(serverMap, datetime, username, hashValue); ExtUserUseridMap userMap = integrationService.getExtUserUseridMap(serverMap, username); ExtCourseClassMap orgMap = integrationService.getExtCourseClassMap(serverMap, userMap, courseId, - countryIsoCode, langIsoCode); + countryIsoCode, langIsoCode, null); // 1. init lesson Lesson lesson = monitoringService.initializeLesson(title, desc, Boolean.TRUE, ldId, orgMap .getOrganisation().getOrganisationId(), userMap.getUser().getUserId(), customCSV); @@ -91,7 +91,7 @@ Authenticator.authenticate(serverMap, datetime, username, hashValue); ExtUserUseridMap userMap = integrationService.getExtUserUseridMap(serverMap, username); ExtCourseClassMap orgMap = integrationService.getExtCourseClassMap(serverMap, userMap, courseId, - countryIsoCode, langIsoCode); + countryIsoCode, langIsoCode, null); // 1. init lesson Lesson lesson = monitoringService.initializeLesson(title, desc, Boolean.TRUE, ldId, orgMap .getOrganisation().getOrganisationId(), userMap.getUser().getUserId(), customCSV); Index: lams_central/src/java/org/lamsfoundation/lams/webservice/xml/LearningDesignRepositoryServlet.java =================================================================== diff -u -r8bdb10721522d226ef15e50da80916d2494a961d -rc2a96caab480d04c02dc7a90e719fc0bb9af6a50 --- lams_central/src/java/org/lamsfoundation/lams/webservice/xml/LearningDesignRepositoryServlet.java (.../LearningDesignRepositoryServlet.java) (revision 8bdb10721522d226ef15e50da80916d2494a961d) +++ lams_central/src/java/org/lamsfoundation/lams/webservice/xml/LearningDesignRepositoryServlet.java (.../LearningDesignRepositoryServlet.java) (revision c2a96caab480d04c02dc7a90e719fc0bb9af6a50) @@ -278,11 +278,11 @@ String hashValue = request.getParameter(CentralConstants.PARAM_HASH_VALUE); String username = request.getParameter(CentralConstants.PARAM_USERNAME); String courseId = request.getParameter(CentralConstants.PARAM_COURSE_ID); + String courseName = request.getParameter(CentralConstants.PARAM_COURSE_NAME); String country = request.getParameter(CentralConstants.PARAM_COUNTRY); String lang = request.getParameter(CentralConstants.PARAM_LANG); String modeStr = request.getParameter(CentralConstants.PARAM_MODE); - String firstName = request.getParameter(LoginRequestDispatcher.PARAM_FIRST_NAME); String lastName = request.getParameter(LoginRequestDispatcher.PARAM_LAST_NAME); String email = request.getParameter(LoginRequestDispatcher.PARAM_EMAIL); @@ -323,7 +323,7 @@ integrationService.getExtCourseClassMap(serverMap, userMap, courseId, - country, lang); + country, lang, courseName); String contentTree = buildContentTree( userMap.getUser().getUserId(), mode).toString(); Index: lams_central/src/java/org/lamsfoundation/lams/webservice/xml/LessonManagerServlet.java =================================================================== diff -u -r5026f52ee7319416d69e0ac42fa99e80e0df7251 -rc2a96caab480d04c02dc7a90e719fc0bb9af6a50 --- lams_central/src/java/org/lamsfoundation/lams/webservice/xml/LessonManagerServlet.java (.../LessonManagerServlet.java) (revision 5026f52ee7319416d69e0ac42fa99e80e0df7251) +++ lams_central/src/java/org/lamsfoundation/lams/webservice/xml/LessonManagerServlet.java (.../LessonManagerServlet.java) (revision c2a96caab480d04c02dc7a90e719fc0bb9af6a50) @@ -283,7 +283,7 @@ ExtUserUseridMap userMap = integrationService.getExtUserUseridMap( serverMap, username); ExtCourseClassMap orgMap = integrationService.getExtCourseClassMap( - serverMap, userMap, courseId, countryIsoCode, langIsoCode); + serverMap, userMap, courseId, countryIsoCode, langIsoCode, null); // 1. init lesson Lesson lesson = monitoringService.initializeLesson(title, desc, Boolean.TRUE, ldId, orgMap.getOrganisation().getOrganisationId(), @@ -314,7 +314,7 @@ ExtUserUseridMap userMap = integrationService.getExtUserUseridMap( serverMap, username); ExtCourseClassMap orgMap = integrationService.getExtCourseClassMap( - serverMap, userMap, courseId, countryIsoCode, langIsoCode); + serverMap, userMap, courseId, countryIsoCode, langIsoCode, null); // 1. init lesson Lesson lesson = monitoringService .initializeLesson(title, desc, Boolean.TRUE, ldId, orgMap @@ -527,7 +527,7 @@ ExtUserUseridMap userMap = integrationService.getExtUserUseridMap( serverMap, username); ExtCourseClassMap orgMap = integrationService.getExtCourseClassMap( - serverMap, userMap, courseId, countryIsoCode, langIsoCode); + serverMap, userMap, courseId, countryIsoCode, langIsoCode, null); // 1. init lesson Lesson lesson = monitoringService .initializeLessonForPreview(title, desc, ldId, userMap.getUser().getUserId(), customCSV); @@ -748,7 +748,7 @@ Authenticator.authenticate(serverMap, datetime, requestorUsername, hashValue); ExtUserUseridMap userMap = integrationService.getExtUserUseridMap(serverMap, username); // adds user to group - ExtCourseClassMap orgMap = integrationService.getExtCourseClassMap(serverMap, userMap, courseId, countryIsoCode, langIsoCode); + ExtCourseClassMap orgMap = integrationService.getExtCourseClassMap(serverMap, userMap, courseId, countryIsoCode, langIsoCode, null); if (lessonService == null) { lessonService = (ILessonService) WebApplicationContextUtils Index: lams_common/src/java/org/lamsfoundation/lams/integration/service/IIntegrationService.java =================================================================== diff -u -r878e6947f0f2e48ca892db589719d73064dcf034 -rc2a96caab480d04c02dc7a90e719fc0bb9af6a50 --- lams_common/src/java/org/lamsfoundation/lams/integration/service/IIntegrationService.java (.../IIntegrationService.java) (revision 878e6947f0f2e48ca892db589719d73064dcf034) +++ lams_common/src/java/org/lamsfoundation/lams/integration/service/IIntegrationService.java (.../IIntegrationService.java) (revision c2a96caab480d04c02dc7a90e719fc0bb9af6a50) @@ -40,7 +40,7 @@ public interface IIntegrationService { ExtCourseClassMap getExtCourseClassMap(ExtServerOrgMap serverMap, ExtUserUseridMap userMap, - String extCourseId, String countryIsoCode, String langIsoCode); + String extCourseId, String countryIsoCode, String langIsoCode, String prettyCourseName); ExtCourseClassMap getExtCourseClassMap(ExtServerOrgMap serverMap, ExtUserUseridMap userMap, String extCourseId, String extCourseName, String countryIsoCode, String langIsoCode, Index: lams_common/src/java/org/lamsfoundation/lams/integration/service/IntegrationService.java =================================================================== diff -u -r878e6947f0f2e48ca892db589719d73064dcf034 -rc2a96caab480d04c02dc7a90e719fc0bb9af6a50 --- lams_common/src/java/org/lamsfoundation/lams/integration/service/IntegrationService.java (.../IntegrationService.java) (revision 878e6947f0f2e48ca892db589719d73064dcf034) +++ lams_common/src/java/org/lamsfoundation/lams/integration/service/IntegrationService.java (.../IntegrationService.java) (revision c2a96caab480d04c02dc7a90e719fc0bb9af6a50) @@ -32,7 +32,9 @@ import java.net.URL; import java.net.URLConnection; import java.net.URLEncoder; +import java.text.DateFormat; import java.text.ParseException; +import java.util.Calendar; import java.util.Date; import java.util.HashMap; import java.util.List; @@ -89,9 +91,21 @@ // wrapper method for compatibility with original integration modules public ExtCourseClassMap getExtCourseClassMap(ExtServerOrgMap serverMap, ExtUserUseridMap userMap, - String extCourseId, String countryIsoCode, String langIsoCode){ + String extCourseId, String countryIsoCode, String langIsoCode, String prettyCourseName){ + + // Set the pretty course name if available, otherwise maintain the extCourseId + String courseName = ""; + if (prettyCourseName != null) + { + courseName = prettyCourseName; + } + else + { + courseName = extCourseId; + } + return getExtCourseClassMap(serverMap, userMap, - extCourseId, extCourseId, countryIsoCode, langIsoCode, + extCourseId, courseName, countryIsoCode, langIsoCode, service.getRootOrganisation().getOrganisationId().toString(), true, true); } @@ -111,6 +125,13 @@ ExtCourseClassMap map = (ExtCourseClassMap)list.get(0); User user = userMap.getUser(); Organisation org = map.getOrganisation(); + + // update external course name if if has changed + if (extCourseName != null && !org.getName().equals(buildName(serverMap.getPrefix(), extCourseName))) + { + org.setName(buildName(serverMap.getPrefix(), extCourseName)); + service.updateOrganisationandWorkspaceNames(org); + } if(service.getUserOrganisation(user.getUserId(), org.getOrganisationId())==null){ addMemberships(user, org, isTeacher); } Index: lams_common/src/java/org/lamsfoundation/lams/usermanagement/service/IUserManagementService.java =================================================================== diff -u -r9004121c5aab7ccdf967fa5ceef247c8950e92f8 -rc2a96caab480d04c02dc7a90e719fc0bb9af6a50 --- lams_common/src/java/org/lamsfoundation/lams/usermanagement/service/IUserManagementService.java (.../IUserManagementService.java) (revision 9004121c5aab7ccdf967fa5ceef247c8950e92f8) +++ lams_common/src/java/org/lamsfoundation/lams/usermanagement/service/IUserManagementService.java (.../IUserManagementService.java) (revision c2a96caab480d04c02dc7a90e719fc0bb9af6a50) @@ -295,6 +295,13 @@ */ public Organisation saveOrganisation( Organisation organisation, Integer userID ); + /** + * Update and organisation's name, used for integrations. + * It also updates the workspace name and workspace folders + * @param organisation + */ + public void updateOrganisationandWorkspaceNames(Organisation organisation); + public List getUserManageBeans(Integer orgId); /** Remove a user from the system completely. Only able to be done if they don't have any Index: lams_common/src/java/org/lamsfoundation/lams/usermanagement/service/UserManagementService.java =================================================================== diff -u -r9004121c5aab7ccdf967fa5ceef247c8950e92f8 -rc2a96caab480d04c02dc7a90e719fc0bb9af6a50 --- lams_common/src/java/org/lamsfoundation/lams/usermanagement/service/UserManagementService.java (.../UserManagementService.java) (revision 9004121c5aab7ccdf967fa5ceef247c8950e92f8) +++ lams_common/src/java/org/lamsfoundation/lams/usermanagement/service/UserManagementService.java (.../UserManagementService.java) (revision c2a96caab480d04c02dc7a90e719fc0bb9af6a50) @@ -541,6 +541,28 @@ return organisation; } + @SuppressWarnings("unchecked") + public void updateOrganisationandWorkspaceNames(Organisation organisation) + { + baseDAO.update(organisation); + if ( organisation.getOrganisationId() != null ) + { + Workspace workspace = organisation.getWorkspace(); + if (workspace != null) { + workspace.setName(organisation.getName()); + baseDAO.update(workspace); + + WorkspaceFolder defaultFolder = workspace.getDefaultFolder(); + if (defaultFolder != null) defaultFolder.setName(organisation.getName()); + baseDAO.update(defaultFolder); + + WorkspaceFolder runSeqFolder = workspace.getDefaultRunSequencesFolder(); + if (runSeqFolder != null) runSeqFolder.setName(getRunSequencesFolderName(organisation.getName())); + baseDAO.update(runSeqFolder); + } + } + } + private String getRunSequencesFolderName(String workspaceName) { String runSeqName = messageService.getMessage(SEQUENCES_FOLDER_NAME_KEY, new Object[] {workspaceName}); if ( runSeqName != null && runSeqName.startsWith("???") ) {