Index: lams_admin/src/java/org/lamsfoundation/lams/admin/service/ImportService.java =================================================================== RCS file: /usr/local/cvsroot/lams_admin/src/java/org/lamsfoundation/lams/admin/service/ImportService.java,v diff -u -r1.8 -r1.9 --- lams_admin/src/java/org/lamsfoundation/lams/admin/service/ImportService.java 21 Sep 2007 03:11:05 -0000 1.8 +++ lams_admin/src/java/org/lamsfoundation/lams/admin/service/ImportService.java 21 Sep 2007 03:34:24 -0000 1.9 @@ -57,7 +57,7 @@ import org.lamsfoundation.lams.usermanagement.dto.UserDTO; import org.lamsfoundation.lams.usermanagement.service.IUserManagementService; import org.lamsfoundation.lams.util.HashUtil; -import org.lamsfoundation.lams.util.LangUtil; +import org.lamsfoundation.lams.util.LanguageUtil; import org.lamsfoundation.lams.util.MessageService; import org.lamsfoundation.lams.util.audit.IAuditService; import org.lamsfoundation.lams.web.session.SessionManager; @@ -856,7 +856,7 @@ // set locale to default system locale if cell is empty private SupportedLocale getLocale(String localeId){ if (localeId==null || localeId=="") { - return LangUtil.getDefaultLocale(); + return LanguageUtil.getDefaultLocale(); } else { try { return (SupportedLocale)service.findById(SupportedLocale.class, new Integer(localeId)); Index: lams_admin/src/java/org/lamsfoundation/lams/admin/web/ServerSaveAction.java =================================================================== RCS file: /usr/local/cvsroot/lams_admin/src/java/org/lamsfoundation/lams/admin/web/ServerSaveAction.java,v diff -u -r1.4 -r1.5 --- lams_admin/src/java/org/lamsfoundation/lams/admin/web/ServerSaveAction.java 21 Sep 2007 03:11:05 -0000 1.4 +++ lams_admin/src/java/org/lamsfoundation/lams/admin/web/ServerSaveAction.java 21 Sep 2007 03:34:24 -0000 1.5 @@ -48,7 +48,7 @@ import org.lamsfoundation.lams.usermanagement.SupportedLocale; import org.lamsfoundation.lams.usermanagement.dto.UserDTO; import org.lamsfoundation.lams.usermanagement.service.IUserManagementService; -import org.lamsfoundation.lams.util.LangUtil; +import org.lamsfoundation.lams.util.LanguageUtil; import org.lamsfoundation.lams.util.MessageService; import org.lamsfoundation.lams.web.session.SessionManager; import org.lamsfoundation.lams.web.util.AttributeNames; @@ -105,7 +105,7 @@ org.setParentOrganisation(userService.getRootOrganisation()); org.setOrganisationType((OrganisationType)userService.findById(OrganisationType.class,OrganisationType.COURSE_TYPE)); org.setOrganisationState((OrganisationState)userService.findById(OrganisationState.class,OrganisationState.ACTIVE)); - SupportedLocale locale = LangUtil.getDefaultLocale(); + SupportedLocale locale = LanguageUtil.getDefaultLocale(); org.setLocale(locale); userService.saveOrganisation(org, user.getUserID()); serverOrgMapForm.set("orgId", org.getOrganisationId()); Index: lams_admin/src/java/org/lamsfoundation/lams/admin/web/UserAction.java =================================================================== RCS file: /usr/local/cvsroot/lams_admin/src/java/org/lamsfoundation/lams/admin/web/UserAction.java,v diff -u -r1.45 -r1.46 --- lams_admin/src/java/org/lamsfoundation/lams/admin/web/UserAction.java 21 Sep 2007 03:11:05 -0000 1.45 +++ lams_admin/src/java/org/lamsfoundation/lams/admin/web/UserAction.java 21 Sep 2007 03:34:24 -0000 1.46 @@ -49,7 +49,7 @@ import org.lamsfoundation.lams.usermanagement.UserOrganisation; import org.lamsfoundation.lams.usermanagement.UserOrganisationRole; import org.lamsfoundation.lams.usermanagement.service.IUserManagementService; -import org.lamsfoundation.lams.util.LangUtil; +import org.lamsfoundation.lams.util.LanguageUtil; import org.lamsfoundation.lams.util.MessageService; import org.lamsfoundation.lams.util.WebUtil; import org.lamsfoundation.lams.web.action.LamsDispatchAction; @@ -138,7 +138,7 @@ request.setAttribute("globalRoles", getGlobalRoles(user)); } else { // create a user try { - SupportedLocale locale = LangUtil.getDefaultLocale(); + SupportedLocale locale = LanguageUtil.getDefaultLocale(); userForm.set("localeId", locale.getLocaleId()); } catch(Exception e) { log.debug(e); Index: lams_admin/src/java/org/lamsfoundation/lams/admin/web/action/ImportV1ContentsSaveAction.java =================================================================== RCS file: /usr/local/cvsroot/lams_admin/src/java/org/lamsfoundation/lams/admin/web/action/Attic/ImportV1ContentsSaveAction.java,v diff -u -r1.6 -r1.7 --- lams_admin/src/java/org/lamsfoundation/lams/admin/web/action/ImportV1ContentsSaveAction.java 21 Sep 2007 03:11:05 -0000 1.6 +++ lams_admin/src/java/org/lamsfoundation/lams/admin/web/action/ImportV1ContentsSaveAction.java 21 Sep 2007 03:34:24 -0000 1.7 @@ -55,7 +55,7 @@ import org.lamsfoundation.lams.usermanagement.dto.UserDTO; import org.lamsfoundation.lams.usermanagement.service.IUserManagementService; import org.lamsfoundation.lams.util.HashUtil; -import org.lamsfoundation.lams.util.LangUtil; +import org.lamsfoundation.lams.util.LanguageUtil; import org.lamsfoundation.lams.util.MessageService; import org.lamsfoundation.lams.web.session.SessionManager; import org.lamsfoundation.lams.web.util.AttributeNames; @@ -111,7 +111,7 @@ boolean onlyMembers = importV1ContentsForm.getOnlyMembers(); // default import options - SupportedLocale locale = LangUtil.getDefaultLocale(); + SupportedLocale locale = LanguageUtil.getDefaultLocale(); final OrganisationType courseType = (OrganisationType)service.findById( OrganisationType.class, OrganisationType.COURSE_TYPE); final OrganisationState activeState = (OrganisationState)service.findById( Index: lams_central/src/java/org/lamsfoundation/lams/webservice/RegisterServiceSoapBindingImpl.java =================================================================== RCS file: /usr/local/cvsroot/lams_central/src/java/org/lamsfoundation/lams/webservice/RegisterServiceSoapBindingImpl.java,v diff -u -r1.10 -r1.11 --- lams_central/src/java/org/lamsfoundation/lams/webservice/RegisterServiceSoapBindingImpl.java 21 Sep 2007 03:11:05 -0000 1.10 +++ lams_central/src/java/org/lamsfoundation/lams/webservice/RegisterServiceSoapBindingImpl.java 21 Sep 2007 03:34:23 -0000 1.11 @@ -28,7 +28,7 @@ import org.lamsfoundation.lams.usermanagement.UserOrganisation; import org.lamsfoundation.lams.usermanagement.UserOrganisationRole; import org.lamsfoundation.lams.usermanagement.service.IUserManagementService; -import org.lamsfoundation.lams.util.LangUtil; +import org.lamsfoundation.lams.util.LanguageUtil; import org.springframework.web.context.support.WebApplicationContextUtils; public class RegisterServiceSoapBindingImpl implements Register { @@ -76,7 +76,7 @@ AuthenticationMethod.class, AuthenticationMethod.DB)); user.setCreateDate(new Date()); user.setDisabledFlag(false); - user.setLocale(LangUtil.getDefaultLocale()); + user.setLocale(LanguageUtil.getDefaultLocale()); user.setFlashTheme(service.getDefaultFlashTheme()); user.setHtmlTheme(service.getDefaultHtmlTheme()); service.save(user); Index: lams_common/src/java/org/lamsfoundation/lams/integration/service/IntegrationService.java =================================================================== RCS file: /usr/local/cvsroot/lams_common/src/java/org/lamsfoundation/lams/integration/service/IntegrationService.java,v diff -u -r1.12 -r1.13 --- lams_common/src/java/org/lamsfoundation/lams/integration/service/IntegrationService.java 21 Sep 2007 03:11:07 -0000 1.12 +++ lams_common/src/java/org/lamsfoundation/lams/integration/service/IntegrationService.java 21 Sep 2007 03:34:24 -0000 1.13 @@ -55,7 +55,7 @@ import org.lamsfoundation.lams.usermanagement.service.IUserManagementService; import org.lamsfoundation.lams.util.CSVUtil; import org.lamsfoundation.lams.util.HashUtil; -import org.lamsfoundation.lams.util.LangUtil; +import org.lamsfoundation.lams.util.LanguageUtil; /** *

@@ -133,12 +133,13 @@ private ExtCourseClassMap createExtCourseClassMap(ExtServerOrgMap serverMap, User user, String extCourseId, String countryIsoCode, String langIsoCode) { Organisation org = new Organisation(); + // TODO group name could be more human readable, need name as well as id from 3rd party server? org.setName(buildName(serverMap.getPrefix(), extCourseId)); org.setDescription(extCourseId); - org.setParentOrganisation(serverMap.getOrganisation()); - org.setOrganisationType((OrganisationType)service.findById(OrganisationType.class,OrganisationType.CLASS_TYPE)); + org.setParentOrganisation(service.getRootOrganisation()); + org.setOrganisationType((OrganisationType)service.findById(OrganisationType.class,OrganisationType.COURSE_TYPE)); org.setOrganisationState((OrganisationState)service.findById(OrganisationState.class,OrganisationState.ACTIVE)); - org.setLocale(LangUtil.getSupportedLocale(langIsoCode, countryIsoCode)); + org.setLocale(LanguageUtil.getSupportedLocale(langIsoCode, countryIsoCode)); service.saveOrganisation(org, user.getUserId()); addMemberships(user,org); ExtCourseClassMap map = new ExtCourseClassMap(); @@ -169,7 +170,7 @@ user.setAuthenticationMethod((AuthenticationMethod)service.findById(AuthenticationMethod.class, AuthenticationMethod.DB)); user.setCreateDate(new Date()); user.setDisabledFlag(false); - user.setLocale(LangUtil.getSupportedLocale(userData[13], userData[12])); + user.setLocale(LanguageUtil.getSupportedLocale(userData[13], userData[12])); user.setFlashTheme(service.getDefaultFlashTheme()); user.setHtmlTheme(service.getDefaultHtmlTheme()); service.save(user); @@ -178,6 +179,8 @@ map.setExtUsername(extUsername); map.setUser(user); service.save(map); + // every integration user is added to the group for their 3rd party server; + // becomes the 'public' folder for that server addMemberships(user, serverMap.getOrganisation()); return map; } Index: lams_common/src/java/org/lamsfoundation/lams/usermanagement/service/LdapService.java =================================================================== RCS file: /usr/local/cvsroot/lams_common/src/java/org/lamsfoundation/lams/usermanagement/service/LdapService.java,v diff -u -r1.4 -r1.5 --- lams_common/src/java/org/lamsfoundation/lams/usermanagement/service/LdapService.java 21 Sep 2007 03:11:07 -0000 1.4 +++ lams_common/src/java/org/lamsfoundation/lams/usermanagement/service/LdapService.java 21 Sep 2007 03:34:24 -0000 1.5 @@ -53,7 +53,7 @@ import org.lamsfoundation.lams.usermanagement.UserOrganisation; import org.lamsfoundation.lams.util.Configuration; import org.lamsfoundation.lams.util.ConfigurationKeys; -import org.lamsfoundation.lams.util.LangUtil; +import org.lamsfoundation.lams.util.LanguageUtil; /** * @author jliew @@ -100,12 +100,12 @@ if (index>0) { String language = attribute.substring(0, index); String country = attribute.substring(index); - return LangUtil.getSupportedLocale(language, country); + return LanguageUtil.getSupportedLocale(language, country); } else { - return LangUtil.getSupportedLocale(attribute); + return LanguageUtil.getSupportedLocale(attribute); } } - return LangUtil.getDefaultLocale(); + return LanguageUtil.getDefaultLocale(); } public boolean createLDAPUser(Attributes attrs) { Fisheye: Tag 1.3 refers to a dead (removed) revision in file `lams_common/src/java/org/lamsfoundation/lams/util/LangUtil.java'. Fisheye: No comparison available. Pass `N' to diff? Index: lams_common/src/java/org/lamsfoundation/lams/util/LanguageUtil.java =================================================================== RCS file: /usr/local/cvsroot/lams_common/src/java/org/lamsfoundation/lams/util/LanguageUtil.java,v diff -u -r1.6 -r1.7 --- lams_common/src/java/org/lamsfoundation/lams/util/LanguageUtil.java 17 Sep 2006 06:14:17 -0000 1.6 +++ lams_common/src/java/org/lamsfoundation/lams/util/LanguageUtil.java 21 Sep 2007 03:34:24 -0000 1.7 @@ -23,9 +23,19 @@ /* $$Id$$ */ package org.lamsfoundation.lams.util; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Map; import java.util.TimeZone; +import org.lamsfoundation.lams.usermanagement.SupportedLocale; +import org.lamsfoundation.lams.usermanagement.service.IUserManagementService; +import org.lamsfoundation.lams.web.util.HttpSessionManager; +import org.springframework.web.context.WebApplicationContext; +import org.springframework.web.context.support.WebApplicationContextUtils; + /** * Various internationalisation (internationalization) utilities. * @@ -37,7 +47,17 @@ public static final String DEFAULT_LANGUAGE = "en"; public static final String DEFAULT_COUNTRY = "AU"; public static final String DEFAULT_DIRECTION = "LTR"; - + private static IUserManagementService service; + + private static IUserManagementService getService() { + if (service == null) { + WebApplicationContext ctx = WebApplicationContextUtils + .getWebApplicationContext(HttpSessionManager.getInstance().getServletContext()); + service = (IUserManagementService) ctx.getBean("userManagementService"); + } + return service; + } + /** * Get the default language, country, based on entries in the * server configuration file. @@ -86,5 +106,54 @@ public static TimeZone getDefaultTimeZone() { return TimeZone.getDefault(); } + + /** + * Returns server default locale. + */ + public static SupportedLocale getDefaultLocale() { + String localeName = Configuration.get(ConfigurationKeys.SERVER_LANGUAGE); + return getSupportedLocale(localeName.substring(0,2),localeName.substring(3)); + } + + /** + * Searches for a locale based on language, then country, matching the single input string. + * Otherwise returns server default locale. + */ + public static SupportedLocale getSupportedLocale(String input) { + List list = getService().findByProperty(SupportedLocale.class, "languageIsoCode", input); + if (list!=null && list.size()>0) { + return (SupportedLocale)list.get(0); + } else { + list = getService().findByProperty(SupportedLocale.class, "countryIsoCode", input); + if (list!=null && list.size()>0) { + return (SupportedLocale)list.get(0); + } + } + return getDefaultLocale(); + } + + /** + * Finds a locale based on language and/or country. + */ + public static SupportedLocale getSupportedLocale(String langIsoCode, String countryIsoCode) { + SupportedLocale locale = null; + Map properties = new HashMap(); + if(countryIsoCode.trim().length()>0 && langIsoCode.trim().length()>0){ + properties.put("languageIsoCode", langIsoCode); + properties.put("countryIsoCode", countryIsoCode); + }else if(langIsoCode.trim().length()>0){ + properties.put("languageIsoCode", langIsoCode); + }else if(countryIsoCode.trim().length()>0){ + properties.put("countryIsoCode", countryIsoCode); + } + List list = getService().findByProperties(SupportedLocale.class, properties); + if(list!=null && list.size()>0){ + Collections.sort(list); + locale = (SupportedLocale)list.get(0); + }else{ + locale = getDefaultLocale(); + } + return locale; + } }