Index: lams_build/lib/lams/lams.jar =================================================================== diff -u -r098532cd2b5687da032408b04a1120dab668083b -reb06cf9300f02897c13bd577689deacb2cf4b5fc Binary files differ Index: lams_central/src/java/org/lamsfoundation/lams/web/LoginRequestLtiServlet.java =================================================================== diff -u -rcd0d3ff90f2fcd957ed96fe1bcd556524b197d39 -reb06cf9300f02897c13bd577689deacb2cf4b5fc --- lams_central/src/java/org/lamsfoundation/lams/web/LoginRequestLtiServlet.java (.../LoginRequestLtiServlet.java) (revision cd0d3ff90f2fcd957ed96fe1bcd556524b197d39) +++ lams_central/src/java/org/lamsfoundation/lams/web/LoginRequestLtiServlet.java (.../LoginRequestLtiServlet.java) (revision eb06cf9300f02897c13bd577689deacb2cf4b5fc) @@ -81,8 +81,8 @@ String email = request.getParameter(BasicLTIConstants.LIS_PERSON_CONTACT_EMAIL_PRIMARY); String locale = request.getParameter(BasicLTIConstants.LAUNCH_PRESENTATION_LOCALE); - String country = LoginRequestLtiServlet.getCountry(locale); - String lang = LoginRequestLtiServlet.getLanguage(locale); + String countryIsoCode = LoginRequestLtiServlet.getCountry(locale); + String langIsoCode = LoginRequestLtiServlet.getLanguage(locale); String consumerKey = request.getParameter(LtiUtils.OAUTH_CONSUMER_KEY); String resourceLinkId = request.getParameter(BasicLTIConstants.RESOURCE_LINK_ID); @@ -173,8 +173,8 @@ url.addParameter(LoginRequestDispatcher.PARAM_HASH, hash); url.addParameter(LoginRequestDispatcher.PARAM_COURSE_ID, contextId); url.addParameter(CentralConstants.PARAM_COURSE_NAME, contextLabel); - url.addParameter(LoginRequestDispatcher.PARAM_COUNTRY, country); - url.addParameter(LoginRequestDispatcher.PARAM_LANGUAGE, lang); + url.addParameter(LoginRequestDispatcher.PARAM_COUNTRY, countryIsoCode); + url.addParameter(LoginRequestDispatcher.PARAM_LANGUAGE, langIsoCode); url.addParameter(LoginRequestDispatcher.PARAM_FIRST_NAME, firstName);//TODO ?? URLEncoder.encode(queryString, "UTF-8"); url.addParameter(LoginRequestDispatcher.PARAM_LAST_NAME, lastName);//TODO ?? URLEncoder.encode(queryString, "UTF-8"); url.addParameter(LoginRequestDispatcher.PARAM_LESSON_ID, lessonId); Index: lams_central/src/java/org/lamsfoundation/lams/web/LoginRequestServlet.java =================================================================== diff -u -rd0fe44d234952aac2b69db3d67dbbebe244fa5e1 -reb06cf9300f02897c13bd577689deacb2cf4b5fc --- lams_central/src/java/org/lamsfoundation/lams/web/LoginRequestServlet.java (.../LoginRequestServlet.java) (revision d0fe44d234952aac2b69db3d67dbbebe244fa5e1) +++ lams_central/src/java/org/lamsfoundation/lams/web/LoginRequestServlet.java (.../LoginRequestServlet.java) (revision eb06cf9300f02897c13bd577689deacb2cf4b5fc) @@ -111,6 +111,17 @@ } } + String[] localeParts = langIsoCode.split("_"); + // if langIsoCode is just 2 letters, then countryIsoCode stays the same and country will fall back to default + // if langIsoCode is en_AU, then it gets split to langIsoCode and countryIsoCode + // and the old value of countryIsoCode is considered country + String country = null; + if (localeParts.length == 2 && localeParts[0].length() == 2 && localeParts[1].length() == 2) { + country = countryIsoCode; + langIsoCode = localeParts[0]; + countryIsoCode = localeParts[1]; + } + ExtServer extServer = getIntegrationService().getExtServer(serverId); boolean prefix = (usePrefix == null) ? true : Boolean.parseBoolean(usePrefix); try { @@ -119,7 +130,7 @@ userMap = getIntegrationService().getExtUserUseridMap(extServer, extUsername, prefix); } else { userMap = getIntegrationService().getImplicitExtUserUseridMap(extServer, extUsername, firstName, - lastName, langIsoCode, countryIsoCode, email, prefix, isUpdateUserDetails); + lastName, langIsoCode, countryIsoCode, country, email, prefix, isUpdateUserDetails); } // in case of request for learner with strict authentication check cache should also contain lsid @@ -154,7 +165,8 @@ String loggedInLogin = loggedInUserDTO == null ? null : loggedInUserDTO.getLogin(); // for checking if requested role is the same as already assigned String role = method.equals(LoginRequestDispatcher.METHOD_LEARNER_STRICT_AUTHENTICATION) - ? LoginRequestDispatcher.METHOD_LEARNER : method; + ? LoginRequestDispatcher.METHOD_LEARNER + : method; if ((loggedInLogin != null) && loggedInLogin.equals(login) && request.isUserInRole(role)) { String url = LoginRequestDispatcher.getRequestURL(request); response.sendRedirect(response.encodeRedirectURL(url)); Index: lams_central/src/java/org/lamsfoundation/lams/webservice/xml/LearningDesignRepositoryServlet.java =================================================================== diff -u -rb67c428939ed96f08f56192d54b8ee55d8ab89d2 -reb06cf9300f02897c13bd577689deacb2cf4b5fc --- lams_central/src/java/org/lamsfoundation/lams/webservice/xml/LearningDesignRepositoryServlet.java (.../LearningDesignRepositoryServlet.java) (revision b67c428939ed96f08f56192d54b8ee55d8ab89d2) +++ lams_central/src/java/org/lamsfoundation/lams/webservice/xml/LearningDesignRepositoryServlet.java (.../LearningDesignRepositoryServlet.java) (revision eb06cf9300f02897c13bd577689deacb2cf4b5fc) @@ -40,6 +40,7 @@ import org.lamsfoundation.lams.usermanagement.exception.UserAccessDeniedException; import org.lamsfoundation.lams.util.CentralConstants; import org.lamsfoundation.lams.util.FileUtil; +import org.lamsfoundation.lams.util.LanguageUtil; import org.lamsfoundation.lams.util.MessageService; import org.lamsfoundation.lams.util.WebUtil; import org.lamsfoundation.lams.workspace.dto.FolderContentDTO; @@ -243,8 +244,8 @@ 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 countryIsoCode = request.getParameter(CentralConstants.PARAM_COUNTRY); + String langIsoCode = request.getParameter(CentralConstants.PARAM_LANG); Integer mode = WebUtil.readIntParam(request, CentralConstants.PARAM_MODE, true); String method = request.getParameter(CentralConstants.PARAM_METHOD); String usePrefix = request.getParameter(CentralConstants.PARAM_USE_PREFIX); @@ -255,7 +256,7 @@ String email = request.getParameter(LoginRequestDispatcher.PARAM_EMAIL); if ((serverId == null) || (datetime == null) || (hashValue == null) || (username == null) - || (courseId == null) || (country == null) || (lang == null)) { + || (courseId == null) || (countryIsoCode == null) || (langIsoCode == null)) { String msg = "Parameters missing"; LearningDesignRepositoryServlet.log.error(msg); response.sendError(HttpServletResponse.SC_BAD_REQUEST, "Parameters missing"); @@ -277,6 +278,14 @@ // authenticate Authenticator.authenticate(extServer, datetime, username, hashValue); + String[] localeParts = langIsoCode.split("_"); + String country = null; + if (localeParts.length == 2 && localeParts[0].length() == 2 && localeParts[1].length() == 2) { + country = countryIsoCode; + langIsoCode = localeParts[0]; + countryIsoCode = localeParts[1]; + } + // get user map, user is created if this is their first use if ((method != null) && method.equals("exportLD")) { @@ -286,8 +295,8 @@ } else if ((method != null) && (method.equals("getLearningDesignsJSON") || method.equals("getPagedHomeLearningDesignsJSON"))) { - Integer userId = getUserId(username, courseId, courseName, country, lang, usePrefix, - isUpdateUserDetails, firstName, lastName, email, extServer); + Integer userId = getUserId(username, courseId, courseName, countryIsoCode, langIsoCode, country, + usePrefix, isUpdateUserDetails, firstName, lastName, email, extServer); boolean allowInvalidDesigns = WebUtil.readBooleanParam(request, "allowInvalidDesigns", false); @@ -314,8 +323,8 @@ } else if ((method != null) && method.equals("deleteLearningDesignJSON")) { - Integer userId = getUserId(username, courseId, courseName, country, lang, usePrefix, - isUpdateUserDetails, firstName, lastName, email, extServer); + Integer userId = getUserId(username, courseId, courseName, countryIsoCode, langIsoCode, country, + usePrefix, isUpdateUserDetails, firstName, lastName, email, extServer); Long learningDesignId = WebUtil.readLongParam(request, LearningDesignRepositoryServlet.PARAM_LEARING_DESIGN_ID); @@ -341,12 +350,13 @@ username, prefix); } else { userMap = LearningDesignRepositoryServlet.integrationService.getImplicitExtUserUseridMap(extServer, - username, firstName, lastName, lang, country, email, prefix, isUpdateUserDetails); + username, firstName, lastName, langIsoCode, countryIsoCode, country, email, prefix, + isUpdateUserDetails); } // create group for external course if necessary LearningDesignRepositoryServlet.integrationService.getExtCourseClassMap(extServer, userMap, courseId, - country, lang, courseName, LoginRequestDispatcher.METHOD_AUTHOR); + countryIsoCode, langIsoCode, courseName, LoginRequestDispatcher.METHOD_AUTHOR); Integer userId = userMap.getUser().getUserId(); String contentTree = buildContentTree(userId, mode).toString(); @@ -382,22 +392,24 @@ } - private Integer getUserId(String username, String courseId, String courseName, String country, String lang, - String usePrefix, final boolean isUpdateUserDetails, String firstName, String lastName, String email, - ExtServer extServer) throws UserInfoFetchException, UserInfoValidationException { + private Integer getUserId(String username, String courseId, String courseName, String countryIsoCode, + String langIsoCode, String country, String usePrefix, final boolean isUpdateUserDetails, String firstName, + String lastName, String email, ExtServer extServer) + throws UserInfoFetchException, UserInfoValidationException { ExtUserUseridMap userMap = null; boolean prefix = usePrefix == null ? true : Boolean.parseBoolean(usePrefix); if ((firstName == null) && (lastName == null)) { userMap = LearningDesignRepositoryServlet.integrationService.getExtUserUseridMap(extServer, username, prefix); } else { userMap = LearningDesignRepositoryServlet.integrationService.getImplicitExtUserUseridMap(extServer, - username, firstName, lastName, lang, country, email, prefix, isUpdateUserDetails); + username, firstName, lastName, langIsoCode, countryIsoCode, country, email, prefix, + isUpdateUserDetails); } // create group for external course if necessary - LearningDesignRepositoryServlet.integrationService.getExtCourseClassMap(extServer, userMap, courseId, country, - lang, courseName, LoginRequestDispatcher.METHOD_AUTHOR); + LearningDesignRepositoryServlet.integrationService.getExtCourseClassMap(extServer, userMap, courseId, + countryIsoCode, langIsoCode, courseName, LoginRequestDispatcher.METHOD_AUTHOR); Integer userId = userMap.getUser().getUserId(); return userId; } Index: lams_central/src/java/org/lamsfoundation/lams/webservice/xml/LessonManagerServlet.java =================================================================== diff -u -rb39597d17e4c55346d4732e0867fd2be09393fa5 -reb06cf9300f02897c13bd577689deacb2cf4b5fc --- lams_central/src/java/org/lamsfoundation/lams/webservice/xml/LessonManagerServlet.java (.../LessonManagerServlet.java) (revision b39597d17e4c55346d4732e0867fd2be09393fa5) +++ lams_central/src/java/org/lamsfoundation/lams/webservice/xml/LessonManagerServlet.java (.../LessonManagerServlet.java) (revision eb06cf9300f02897c13bd577689deacb2cf4b5fc) @@ -64,6 +64,7 @@ import org.lamsfoundation.lams.usermanagement.service.IUserManagementService; import org.lamsfoundation.lams.util.CentralConstants; import org.lamsfoundation.lams.util.DateUtil; +import org.lamsfoundation.lams.util.LanguageUtil; import org.lamsfoundation.lams.util.WebUtil; import org.lamsfoundation.lams.web.session.SessionManager; import org.lamsfoundation.lams.web.util.AttributeNames; @@ -123,11 +124,11 @@ String courseId = request.getParameter(CentralConstants.PARAM_COURSE_ID); String ldIdStr = request.getParameter(CentralConstants.PARAM_LEARNING_DESIGN_ID); String lsIdStr = request.getParameter(CentralConstants.PARAM_LESSON_ID); - String country = request.getParameter(CentralConstants.PARAM_COUNTRY); + String countryIsoCode = request.getParameter(CentralConstants.PARAM_COUNTRY); String title = request.getParameter(CentralConstants.PARAM_TITLE); String desc = request.getParameter(CentralConstants.PARAM_DESC); String startDate = request.getParameter(CentralConstants.PARAM_STARTDATE); - String lang = request.getParameter(CentralConstants.PARAM_LANG); + String langIsoCode = request.getParameter(CentralConstants.PARAM_LANG); String method = request.getParameter(CentralConstants.PARAM_METHOD); String filePath = request.getParameter(CentralConstants.PARAM_FILEPATH); String outputsUser = request.getParameter("outputsUser"); @@ -149,6 +150,14 @@ boolean enableNotifications = WebUtil.readBooleanParam(request, CentralConstants.PARAM_ENABLE_NOTIFICATIONS, false); + String[] localeParts = langIsoCode.split("_"); + String country = null; + if (localeParts.length == 2 && localeParts[0].length() == 2 && localeParts[1].length() == 2) { + country = countryIsoCode; + langIsoCode = localeParts[0]; + countryIsoCode = localeParts[1]; + } + Long ldId = null; Long lsId = null; ServletOutputStream outputStream = null; @@ -168,31 +177,34 @@ if (method.equals(CentralConstants.METHOD_START)) { ldId = new Long(ldIdStr); Long lessonId = LessonManagerServlet.startLesson(serverId, datetime, hashValue, username, ldId, - courseId, title, desc, country, lang, customCSV, presenceEnable, imEnable, enableNotifications); + courseId, title, desc, countryIsoCode, langIsoCode, customCSV, presenceEnable, imEnable, + enableNotifications); element = document.createElement(CentralConstants.ELEM_LESSON); element.setAttribute(CentralConstants.ATTR_LESSON_ID, lessonId.toString()); } else if (method.equals(CentralConstants.METHOD_PREVIEW)) { ldId = new Long(ldIdStr); Long lessonId = startPreview(serverId, datetime, hashValue, username, ldId, courseId, title, desc, - country, lang, customCSV, presenceEnable, imEnable); + countryIsoCode, langIsoCode, customCSV, presenceEnable, imEnable); element = document.createElement(CentralConstants.ELEM_LESSON); element.setAttribute(CentralConstants.ATTR_LESSON_ID, lessonId.toString()); } else if (method.equals(CentralConstants.METHOD_SCHEDULE)) { ldId = new Long(ldIdStr); Long lessonId = scheduleLesson(serverId, datetime, hashValue, username, ldId, courseId, title, desc, - startDate, country, lang, customCSV, presenceEnable, imEnable, enableNotifications); + startDate, countryIsoCode, langIsoCode, customCSV, presenceEnable, imEnable, + enableNotifications); element = document.createElement(CentralConstants.ELEM_LESSON); element.setAttribute(CentralConstants.ATTR_LESSON_ID, lessonId.toString()); } else if (method.equals(CentralConstants.METHOD_CLONE)) { lsId = new Long(lsIdStr); - Long lessonId = cloneLesson(serverId, datetime, hashValue, username, lsId, courseId, country, lang); + Long lessonId = cloneLesson(serverId, datetime, hashValue, username, lsId, courseId, countryIsoCode, + langIsoCode); element = document.createElement(CentralConstants.ELEM_LESSON); element.setAttribute(CentralConstants.ATTR_LESSON_ID, lessonId.toString()); @@ -236,7 +248,7 @@ lsId = new Long(lsIdStr); element = getSingleStudentProgress(document, serverId, datetime, hashValue, username, firstName, - lastName, lang, country, email, lsId, courseId); + lastName, langIsoCode, countryIsoCode, country, email, lsId, courseId); } else if (method.equals(CentralConstants.METHOD_IMPORT)) { @@ -248,7 +260,8 @@ } else if (method.equals(CentralConstants.METHOD_JOIN_LESSON)) { Thread t = new Thread(new AddUsersToLessonThread(serverId, datetime, username, hashValue, lsIdStr, - courseId, country, lang, learnerIds, monitorIds, firstNames, lastNames, emails, request)); + courseId, countryIsoCode, langIsoCode, country, learnerIds, monitorIds, firstNames, lastNames, + emails, request)); t.start(); element = document.createElement(CentralConstants.ELEM_LESSON); @@ -298,8 +311,8 @@ return; } else if (method.equals(CentralConstants.METHOD_LIST_MONITOR)) { - element = getLessonMonitorList(document, serverId, datetime, hashValue, username, courseId, country, - lang); + element = getLessonMonitorList(document, serverId, datetime, hashValue, username, courseId, + countryIsoCode, langIsoCode); } else { String msg = "Method :" + method + " is not recognised"; log.error(msg); @@ -506,8 +519,8 @@ } private Element getSingleStudentProgress(Document document, String serverId, String datetime, String hashValue, - String username, String firstName, String lastName, String language, String country, String email, - long lsId, String courseID) throws RemoteException { + String username, String firstName, String lastName, String langIsoCode, String countryIsoCode, + String country, String email, long lsId, String courseID) throws RemoteException { try { ExtServer extServer = integrationService.getExtServer(serverId); Authenticator.authenticate(extServer, datetime, username, hashValue); @@ -523,7 +536,8 @@ final boolean usePrefix = true; final boolean isUpdateUserDetails = false; ExtUserUseridMap userMap = integrationService.getImplicitExtUserUseridMap(extServer, username, - firstName, lastName, language, country, email, usePrefix, isUpdateUserDetails); + firstName, lastName, langIsoCode, countryIsoCode, country, email, usePrefix, + isUpdateUserDetails); LearnerProgress learnProg = lessonService.getUserProgressForLesson(userMap.getUser().getUserId(), lsId); @@ -830,8 +844,9 @@ private String hashValue; private String lsIdStr; private String courseId; + private String countryIsoCode; + private String langIsoCode; private String country; - private String lang; private String learnerIds; private String monitorIds; private String firstNames; @@ -840,16 +855,18 @@ private HttpServletRequest request; public AddUsersToLessonThread(String serverId, String datetime, String username, String hashValue, - String lsIdStr, String courseId, String country, String lang, String learnerIds, String monitorIds, - String firstNames, String lastNames, String emails, HttpServletRequest request) { + String lsIdStr, String courseId, String countryIsoCode, String langIsoCode, String country, + String learnerIds, String monitorIds, String firstNames, String lastNames, String emails, + HttpServletRequest request) { this.serverId = serverId; this.datetime = datetime; this.username = username; this.hashValue = hashValue; this.lsIdStr = lsIdStr; this.courseId = courseId; + this.countryIsoCode = countryIsoCode; + this.langIsoCode = langIsoCode; this.country = country; - this.lang = lang; this.learnerIds = learnerIds; this.monitorIds = monitorIds; this.firstNames = firstNames; @@ -860,8 +877,8 @@ @Override public void run() { - addUsersToLesson(serverId, datetime, username, hashValue, lsIdStr, courseId, country, lang, learnerIds, - monitorIds, firstNames, lastNames, emails, request); + addUsersToLesson(serverId, datetime, username, hashValue, lsIdStr, courseId, countryIsoCode, langIsoCode, + country, learnerIds, monitorIds, firstNames, lastNames, emails, request); } /** @@ -878,8 +895,9 @@ * @return */ public Boolean addUsersToLesson(String serverId, String datetime, String requestorUsername, String hashValue, - String lsIdStr, String courseId, String countryIsoCode, String langIsoCode, String learnerIds, - String monitorIds, String firstNames, String lastNames, String emails, HttpServletRequest request) { + String lsIdStr, String courseId, String countryIsoCode, String langIsoCode, String country, + String learnerIds, String monitorIds, String firstNames, String lastNames, String emails, + HttpServletRequest request) { try { // get Server map @@ -923,7 +941,7 @@ if (StringUtils.isNotBlank(userName)) { addUserToLesson(request, extServer, LoginRequestDispatcher.METHOD_LEARNER, lsIdStr, userName, - firstName, lastName, email, courseId, countryIsoCode, langIsoCode); + firstName, lastName, email, courseId, countryIsoCode, langIsoCode, country); } i++; } @@ -941,7 +959,7 @@ if (StringUtils.isNotBlank(userName)) { addUserToLesson(request, extServer, LoginRequestDispatcher.METHOD_MONITOR, lsIdStr, userName, - firstName, lastName, email, courseId, countryIsoCode, langIsoCode); + firstName, lastName, email, courseId, countryIsoCode, langIsoCode, country); } i++; } @@ -961,7 +979,8 @@ private void addUserToLesson(HttpServletRequest request, ExtServer extServer, String method, String lsIdStr, String username, String firstName, String lastName, String email, String courseId, - String countryIsoCode, String langIsoCode) throws UserInfoFetchException, UserInfoValidationException { + String countryIsoCode, String langIsoCode, String country) + throws UserInfoFetchException, UserInfoValidationException { if (log.isDebugEnabled()) { log.debug("Adding user '" + username + "' as " + method + " to lesson with id '" + lsIdStr + "'."); @@ -974,7 +993,7 @@ final boolean usePrefix = true; final boolean isUpdateUserDetails = false; userMap = integrationService.getImplicitExtUserUseridMap(extServer, username, firstName, lastName, - langIsoCode, countryIsoCode, email, usePrefix, isUpdateUserDetails); + langIsoCode, countryIsoCode, country, email, usePrefix, isUpdateUserDetails); } // ExtUserUseridMap userMap = integrationService.getExtUserUseridMap(extServer, Index: lams_common/src/java/org/lamsfoundation/lams/integration/service/IIntegrationService.java =================================================================== diff -u -r3751037e76fe181b7413af52566405168d36f5e1 -reb06cf9300f02897c13bd577689deacb2cf4b5fc --- lams_common/src/java/org/lamsfoundation/lams/integration/service/IIntegrationService.java (.../IIntegrationService.java) (revision 3751037e76fe181b7413af52566405168d36f5e1) +++ lams_common/src/java/org/lamsfoundation/lams/integration/service/IIntegrationService.java (.../IIntegrationService.java) (revision eb06cf9300f02897c13bd577689deacb2cf4b5fc) @@ -137,8 +137,8 @@ * @param extUsername * @param firstName * @param lastName - * @param language - * @param country + * @param langIsoCode + * @param countryIsoCode * @param email * @param prefix * @param isUpdateUserDetails @@ -147,7 +147,7 @@ * @throws UserInfoValidationException */ ExtUserUseridMap getImplicitExtUserUseridMap(ExtServer extServer, String extUsername, String firstName, - String lastName, String language, String country, String email, boolean prefix, boolean isUpdateUserDetails) + String lastName, String langIsoCode, String countryIsoCode, String country, String email, boolean prefix, boolean isUpdateUserDetails) throws UserInfoValidationException; /** Index: lams_common/src/java/org/lamsfoundation/lams/integration/service/IntegrationService.java =================================================================== diff -u -r098532cd2b5687da032408b04a1120dab668083b -reb06cf9300f02897c13bd577689deacb2cf4b5fc --- lams_common/src/java/org/lamsfoundation/lams/integration/service/IntegrationService.java (.../IntegrationService.java) (revision 098532cd2b5687da032408b04a1120dab668083b) +++ lams_common/src/java/org/lamsfoundation/lams/integration/service/IntegrationService.java (.../IntegrationService.java) (revision eb06cf9300f02897c13bd577689deacb2cf4b5fc) @@ -292,8 +292,9 @@ if (extUserUseridMap == null) { String[] defaultLangCountry = LanguageUtil.getDefaultLangCountry(); - String[] userData = { "", firstName, lastName, "", "", "", "", LanguageUtil.getDefaultCountry(), "", "", "", - email, defaultLangCountry[1], defaultLangCountry[0] }; + String country = LanguageUtil.getDefaultCountry(); + String[] userData = { "", firstName, lastName, "", "", "", "", country, "", "", "", email, + defaultLangCountry[1], defaultLangCountry[0] }; return createExtUserUseridMap(extServer, extUsername, password, salt, userData, false); } else { return extUserUseridMap; @@ -302,14 +303,15 @@ @Override public ExtUserUseridMap getImplicitExtUserUseridMap(ExtServer extServer, String extUsername, String firstName, - String lastName, String language, String country, String email, boolean prefix, boolean isUpdateUserDetails) - throws UserInfoValidationException { + String lastName, String langIsoCode, String countryIsoCode, String country, String email, boolean prefix, + boolean isUpdateUserDetails) throws UserInfoValidationException { ExtUserUseridMap extUserUseridMap = getExistingExtUserUseridMap(extServer, extUsername); //create new one if it doesn't exist yet if (extUserUseridMap == null) { - String[] userData = { "", firstName, lastName, "", "", "", "", "", "", "", "", email, country, language }; + String[] userData = { "", firstName, lastName, "", "", "", "", country, "", "", "", email, countryIsoCode, + langIsoCode }; String salt = HashUtil.salt(); String password = HashUtil.sha256(RandomPasswordGenerator.nextPassword(10), salt); return createExtUserUseridMap(extServer, extUsername, password, salt, userData, prefix); @@ -342,7 +344,11 @@ user.setLastName(lastName); user.setEmail(email); user.setModifiedDate(new Date()); - user.setLocale(LanguageUtil.getSupportedLocale(language, country)); + user.setLocale(LanguageUtil.getSupportedLocale(langIsoCode, countryIsoCode)); + if (StringUtils.isBlank(country)) { + country = LanguageUtil.getDefaultCountry(); + } + user.setCountry(country); service.saveUser(user); return extUserUseridMap;