Index: lams_admin/src/java/org/lamsfoundation/lams/admin/service/ImportService.java =================================================================== diff -u -r9d6c499e9e59826c9683b30af19e580403aa8a41 -r9b9a8c320a611027445fe94db5cd458c2968700d --- lams_admin/src/java/org/lamsfoundation/lams/admin/service/ImportService.java (.../ImportService.java) (revision 9d6c499e9e59826c9683b30af19e580403aa8a41) +++ lams_admin/src/java/org/lamsfoundation/lams/admin/service/ImportService.java (.../ImportService.java) (revision 9b9a8c320a611027445fe94db5cd458c2968700d) @@ -56,9 +56,8 @@ import org.lamsfoundation.lams.usermanagement.User; import org.lamsfoundation.lams.usermanagement.dto.UserDTO; import org.lamsfoundation.lams.usermanagement.service.IUserManagementService; -import org.lamsfoundation.lams.util.Configuration; -import org.lamsfoundation.lams.util.ConfigurationKeys; import org.lamsfoundation.lams.util.HashUtil; +import org.lamsfoundation.lams.util.LangUtil; import org.lamsfoundation.lams.util.MessageService; import org.lamsfoundation.lams.util.audit.IAuditService; import org.lamsfoundation.lams.web.session.SessionManager; @@ -831,9 +830,7 @@ // set CSSThemeVisualElement to default flash theme if cell is empty private CSSThemeVisualElement getFlashTheme(String flashId){ if (flashId==null || flashId=="") { - String flashName = Configuration.get(ConfigurationKeys.DEFAULT_FLASH_THEME); - List list = service.findByProperty(CSSThemeVisualElement.class, "name", flashName); - return (list != null && list.size() > 0) ? (CSSThemeVisualElement) list.get(0) : null; + return service.getDefaultFlashTheme(); } else { try { return (CSSThemeVisualElement)service.findById(CSSThemeVisualElement.class, new Long(flashId)); @@ -846,9 +843,7 @@ // set CSSThemeVisualElement to default html theme if cell is empty private CSSThemeVisualElement getHtmlTheme(String htmlId){ if (htmlId==null || htmlId=="") { - String htmlName = Configuration.get(ConfigurationKeys.DEFAULT_HTML_THEME); - List list = service.findByProperty(CSSThemeVisualElement.class, "name", htmlName); - return (list != null && list.size() > 0) ? (CSSThemeVisualElement) list.get(0) : null; + return service.getDefaultHtmlTheme(); } else { try { return (CSSThemeVisualElement)service.findById(CSSThemeVisualElement.class, new Long(htmlId)); @@ -861,8 +856,7 @@ // set locale to default system locale if cell is empty private SupportedLocale getLocale(String localeId){ if (localeId==null || localeId=="") { - String defaultLocale = Configuration.get(ConfigurationKeys.SERVER_LANGUAGE); - return service.getSupportedLocale(defaultLocale.substring(0, 2), defaultLocale.substring(3)); + return LangUtil.getDefaultLocale(); } else { try { return (SupportedLocale)service.findById(SupportedLocale.class, new Integer(localeId)); Index: lams_admin/src/java/org/lamsfoundation/lams/admin/web/ServerSaveAction.java =================================================================== diff -u -r9cfe1aa20b4cc43c571bda0f090c1a2114e20261 -r9b9a8c320a611027445fe94db5cd458c2968700d --- lams_admin/src/java/org/lamsfoundation/lams/admin/web/ServerSaveAction.java (.../ServerSaveAction.java) (revision 9cfe1aa20b4cc43c571bda0f090c1a2114e20261) +++ lams_admin/src/java/org/lamsfoundation/lams/admin/web/ServerSaveAction.java (.../ServerSaveAction.java) (revision 9b9a8c320a611027445fe94db5cd458c2968700d) @@ -48,8 +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.Configuration; -import org.lamsfoundation.lams.util.ConfigurationKeys; +import org.lamsfoundation.lams.util.LangUtil; import org.lamsfoundation.lams.util.MessageService; import org.lamsfoundation.lams.web.session.SessionManager; import org.lamsfoundation.lams.web.util.AttributeNames; @@ -106,8 +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)); - String defaultLocale = Configuration.get(ConfigurationKeys.SERVER_LANGUAGE); - SupportedLocale locale = userService.getSupportedLocale(defaultLocale.substring(0,2),defaultLocale.substring(3)); + SupportedLocale locale = LangUtil.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 =================================================================== diff -u -r4a2728da7ea82a98b92d3a8b08feb6efa4023b7d -r9b9a8c320a611027445fe94db5cd458c2968700d --- lams_admin/src/java/org/lamsfoundation/lams/admin/web/UserAction.java (.../UserAction.java) (revision 4a2728da7ea82a98b92d3a8b08feb6efa4023b7d) +++ lams_admin/src/java/org/lamsfoundation/lams/admin/web/UserAction.java (.../UserAction.java) (revision 9b9a8c320a611027445fe94db5cd458c2968700d) @@ -28,7 +28,6 @@ import java.util.Collections; import java.util.List; -import javax.servlet.ServletContext; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -50,8 +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.Configuration; -import org.lamsfoundation.lams.util.ConfigurationKeys; +import org.lamsfoundation.lams.util.LangUtil; import org.lamsfoundation.lams.util.MessageService; import org.lamsfoundation.lams.util.WebUtil; import org.lamsfoundation.lams.web.action.LamsDispatchAction; @@ -140,9 +138,7 @@ request.setAttribute("globalRoles", getGlobalRoles(user)); } else { // create a user try { - String defaultLocale = Configuration.get(ConfigurationKeys.SERVER_LANGUAGE); - log.debug("using defaultLocale: "+defaultLocale); - SupportedLocale locale = service.getSupportedLocale(defaultLocale.substring(0,2),defaultLocale.substring(3)); + SupportedLocale locale = LangUtil.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 =================================================================== diff -u -r9d6c499e9e59826c9683b30af19e580403aa8a41 -r9b9a8c320a611027445fe94db5cd458c2968700d --- lams_admin/src/java/org/lamsfoundation/lams/admin/web/action/ImportV1ContentsSaveAction.java (.../ImportV1ContentsSaveAction.java) (revision 9d6c499e9e59826c9683b30af19e580403aa8a41) +++ lams_admin/src/java/org/lamsfoundation/lams/admin/web/action/ImportV1ContentsSaveAction.java (.../ImportV1ContentsSaveAction.java) (revision 9b9a8c320a611027445fe94db5cd458c2968700d) @@ -45,7 +45,6 @@ import org.lamsfoundation.lams.admin.web.dto.V1OrganisationDTO; import org.lamsfoundation.lams.admin.web.dto.V1UserDTO; import org.lamsfoundation.lams.admin.web.form.ImportV1ContentsForm; -import org.lamsfoundation.lams.themes.CSSThemeVisualElement; import org.lamsfoundation.lams.usermanagement.AuthenticationMethod; import org.lamsfoundation.lams.usermanagement.Organisation; import org.lamsfoundation.lams.usermanagement.OrganisationState; @@ -55,9 +54,8 @@ import org.lamsfoundation.lams.usermanagement.User; import org.lamsfoundation.lams.usermanagement.dto.UserDTO; import org.lamsfoundation.lams.usermanagement.service.IUserManagementService; -import org.lamsfoundation.lams.util.Configuration; -import org.lamsfoundation.lams.util.ConfigurationKeys; import org.lamsfoundation.lams.util.HashUtil; +import org.lamsfoundation.lams.util.LangUtil; import org.lamsfoundation.lams.util.MessageService; import org.lamsfoundation.lams.web.session.SessionManager; import org.lamsfoundation.lams.web.util.AttributeNames; @@ -113,8 +111,7 @@ boolean onlyMembers = importV1ContentsForm.getOnlyMembers(); // default import options - String defaultLocale = Configuration.get(ConfigurationKeys.SERVER_LANGUAGE); - SupportedLocale locale = service.getSupportedLocale(defaultLocale.substring(0,2),defaultLocale.substring(3)); + SupportedLocale locale = LangUtil.getDefaultLocale(); final OrganisationType courseType = (OrganisationType)service.findById( OrganisationType.class, OrganisationType.COURSE_TYPE); final OrganisationState activeState = (OrganisationState)service.findById( @@ -244,18 +241,8 @@ newUser.setPassword(HashUtil.sha1(user.getLogin())); newUser.setChangePassword(true); - String flashName = Configuration.get(ConfigurationKeys.DEFAULT_FLASH_THEME); - List list = service.findByProperty(CSSThemeVisualElement.class, "name", flashName); - if (list!=null) { - CSSThemeVisualElement flashTheme = (CSSThemeVisualElement)list.get(0); - newUser.setFlashTheme(flashTheme); - } - String htmlName = Configuration.get(ConfigurationKeys.DEFAULT_HTML_THEME); - list = service.findByProperty(CSSThemeVisualElement.class, "name", htmlName); - if (list!=null) { - CSSThemeVisualElement htmlTheme = (CSSThemeVisualElement)list.get(0); - newUser.setHtmlTheme(htmlTheme); - } + newUser.setFlashTheme(service.getDefaultFlashTheme()); + newUser.setHtmlTheme(service.getDefaultHtmlTheme()); newUser.setDisabledFlag(false); newUser.setCreateDate(new Date()); newUser.setAuthenticationMethod((AuthenticationMethod)service.findByProperty(AuthenticationMethod.class, Index: lams_central/src/java/org/lamsfoundation/lams/webservice/RegisterServiceSoapBindingImpl.java =================================================================== diff -u -r951a33cdabfc3a4c4c2f728d4b6871a98bea2bbc -r9b9a8c320a611027445fe94db5cd458c2968700d --- lams_central/src/java/org/lamsfoundation/lams/webservice/RegisterServiceSoapBindingImpl.java (.../RegisterServiceSoapBindingImpl.java) (revision 951a33cdabfc3a4c4c2f728d4b6871a98bea2bbc) +++ lams_central/src/java/org/lamsfoundation/lams/webservice/RegisterServiceSoapBindingImpl.java (.../RegisterServiceSoapBindingImpl.java) (revision 9b9a8c320a611027445fe94db5cd458c2968700d) @@ -9,7 +9,6 @@ import java.util.Date; import java.util.Iterator; -import java.util.List; import java.util.Set; import javax.servlet.http.HttpServlet; @@ -22,17 +21,14 @@ import org.lamsfoundation.lams.integration.service.IIntegrationService; import org.lamsfoundation.lams.lesson.Lesson; import org.lamsfoundation.lams.lesson.service.ILessonService; -import org.lamsfoundation.lams.themes.CSSThemeVisualElement; import org.lamsfoundation.lams.usermanagement.AuthenticationMethod; import org.lamsfoundation.lams.usermanagement.Organisation; import org.lamsfoundation.lams.usermanagement.Role; -import org.lamsfoundation.lams.usermanagement.SupportedLocale; import org.lamsfoundation.lams.usermanagement.User; import org.lamsfoundation.lams.usermanagement.UserOrganisation; import org.lamsfoundation.lams.usermanagement.UserOrganisationRole; import org.lamsfoundation.lams.usermanagement.service.IUserManagementService; -import org.lamsfoundation.lams.util.Configuration; -import org.lamsfoundation.lams.util.ConfigurationKeys; +import org.lamsfoundation.lams.util.LangUtil; import org.springframework.web.context.support.WebApplicationContextUtils; public class RegisterServiceSoapBindingImpl implements Register { @@ -80,19 +76,9 @@ AuthenticationMethod.class, AuthenticationMethod.DB)); user.setCreateDate(new Date()); user.setDisabledFlag(false); - user.setLocale(getLocale()); - String flashName = Configuration.get(ConfigurationKeys.DEFAULT_FLASH_THEME); - List list = service.findByProperty(CSSThemeVisualElement.class, "name", flashName); - if (list != null && list.size() > 0) { - CSSThemeVisualElement flashTheme = (CSSThemeVisualElement) list.get(0); - user.setFlashTheme(flashTheme); - } - String htmlName = Configuration.get(ConfigurationKeys.DEFAULT_HTML_THEME); - list = service.findByProperty(CSSThemeVisualElement.class, "name", htmlName); - if (list != null && list.size() > 0) { - CSSThemeVisualElement htmlTheme = (CSSThemeVisualElement) list.get(0); - user.setHtmlTheme(htmlTheme); - } + user.setLocale(LangUtil.getDefaultLocale()); + user.setFlashTheme(service.getDefaultFlashTheme()); + user.setHtmlTheme(service.getDefaultHtmlTheme()); service.save(user); return true; } catch (Exception e) { @@ -195,12 +181,6 @@ throw new java.rmi.RemoteException(e.getMessage()); } } - - private SupportedLocale getLocale() { - String defaultLocale = Configuration.get(ConfigurationKeys.SERVER_LANGUAGE); - return service - .getSupportedLocale(defaultLocale.substring(0, 2), defaultLocale.substring(3)); - } @SuppressWarnings("unchecked") private void addMemberships(User user, Organisation org, Boolean isTeacher) { Index: lams_central/web/editprofile.jsp =================================================================== diff -u -r240dba20019d989674d17faa11ce3c4feec48b9b -r9b9a8c320a611027445fe94db5cd458c2968700d --- lams_central/web/editprofile.jsp (.../editprofile.jsp) (revision 240dba20019d989674d17faa11ce3c4feec48b9b) +++ lams_central/web/editprofile.jsp (.../editprofile.jsp) (revision 9b9a8c320a611027445fe94db5cd458c2968700d) @@ -93,6 +93,18 @@ : + + : + + + + + + + + + + @@ -178,21 +190,21 @@ : - - - : - - - - - - - + + + + + + + + + + Index: lams_common/db/sql/insert_lams_unix_config_data.sql =================================================================== diff -u -r20ce199831888b996374f8873220db09b375a74c -r9b9a8c320a611027445fe94db5cd458c2968700d --- lams_common/db/sql/insert_lams_unix_config_data.sql (.../insert_lams_unix_config_data.sql) (revision 20ce199831888b996374f8873220db09b375a74c) +++ lams_common/db/sql/insert_lams_unix_config_data.sql (.../insert_lams_unix_config_data.sql) (revision 9b9a8c320a611027445fe94db5cd458c2968700d) @@ -44,9 +44,18 @@ insert into lams_configuration (config_key, config_value) values ('LDAPFNameAttr','givenName'); insert into lams_configuration (config_key, config_value) values ('LDAPLNameAttr','sn'); insert into lams_configuration (config_key, config_value) values ('LDAPEmailAttr','mail'); -insert into lams_configuration (config_key, config_value) values ('LDAPPhoneAttr','telephoneNumber'); +insert into lams_configuration (config_key, config_value) values ('LDAPAddr1Attr','postalAddress'); +insert into lams_configuration (config_key, config_value) values ('LDAPAddr2Attr',''); +insert into lams_configuration (config_key, config_value) values ('LDAPAddr3Attr',''); +insert into lams_configuration (config_key, config_value) values ('LDAPCityAttr','l'); +insert into lams_configuration (config_key, config_value) values ('LDAPStateAttr','st'); +insert into lams_configuration (config_key, config_value) values ('LDAPPostcodeAttr','postalCode'); +insert into lams_configuration (config_key, config_value) values ('LDAPCountryAttr',''); +insert into lams_configuration (config_key, config_value) values ('LDAPDayPhoneAttr','telephoneNumber'); +insert into lams_configuration (config_key, config_value) values ('LDAPEveningPhoneAttr','homePhone'); insert into lams_configuration (config_key, config_value) values ('LDAPFaxAttr','facsimileTelephoneNumber'); insert into lams_configuration (config_key, config_value) values ('LDAPMobileAttr','mobile'); +insert into lams_configuration (config_key, config_value) values ('LDAPLocaleAttr','preferredLanguage'); insert into lams_configuration (config_key, config_value) values ('LDAPOrgAttr','deetITSchoolCode'); insert into lams_configuration (config_key, config_value) values ('LDAPRolesAttr','memberOf'); insert into lams_configuration (config_key, config_value) values ('LDAPLearnerMap','Student;SchoolSupportStaff;Teacher;SeniorStaff;Principal'); Index: lams_common/db/sql/insert_lams_windows_config_data.sql =================================================================== diff -u -r20ce199831888b996374f8873220db09b375a74c -r9b9a8c320a611027445fe94db5cd458c2968700d --- lams_common/db/sql/insert_lams_windows_config_data.sql (.../insert_lams_windows_config_data.sql) (revision 20ce199831888b996374f8873220db09b375a74c) +++ lams_common/db/sql/insert_lams_windows_config_data.sql (.../insert_lams_windows_config_data.sql) (revision 9b9a8c320a611027445fe94db5cd458c2968700d) @@ -44,9 +44,18 @@ insert into lams_configuration (config_key, config_value) values ('LDAPFNameAttr','givenName'); insert into lams_configuration (config_key, config_value) values ('LDAPLNameAttr','sn'); insert into lams_configuration (config_key, config_value) values ('LDAPEmailAttr','mail'); -insert into lams_configuration (config_key, config_value) values ('LDAPPhoneAttr','telephoneNumber'); +insert into lams_configuration (config_key, config_value) values ('LDAPAddr1Attr','postalAddress'); +insert into lams_configuration (config_key, config_value) values ('LDAPAddr2Attr',''); +insert into lams_configuration (config_key, config_value) values ('LDAPAddr3Attr',''); +insert into lams_configuration (config_key, config_value) values ('LDAPCityAttr','l'); +insert into lams_configuration (config_key, config_value) values ('LDAPStateAttr','st'); +insert into lams_configuration (config_key, config_value) values ('LDAPPostcodeAttr','postalCode'); +insert into lams_configuration (config_key, config_value) values ('LDAPCountryAttr',''); +insert into lams_configuration (config_key, config_value) values ('LDAPDayPhoneAttr','telephoneNumber'); +insert into lams_configuration (config_key, config_value) values ('LDAPEveningPhoneAttr','homePhone'); insert into lams_configuration (config_key, config_value) values ('LDAPFaxAttr','facsimileTelephoneNumber'); insert into lams_configuration (config_key, config_value) values ('LDAPMobileAttr','mobile'); +insert into lams_configuration (config_key, config_value) values ('LDAPLocaleAttr','preferredLanguage'); insert into lams_configuration (config_key, config_value) values ('LDAPOrgAttr','deetITSchoolCode'); insert into lams_configuration (config_key, config_value) values ('LDAPRolesAttr','memberOf'); insert into lams_configuration (config_key, config_value) values ('LDAPLearnerMap','Student;SchoolSupportStaff;Teacher;SeniorStaff;Principal'); Index: lams_common/db/sql/updatescripts/alter_205_ldap.sql =================================================================== diff -u --- lams_common/db/sql/updatescripts/alter_205_ldap.sql (revision 0) +++ lams_common/db/sql/updatescripts/alter_205_ldap.sql (revision 9b9a8c320a611027445fe94db5cd458c2968700d) @@ -0,0 +1,37 @@ +-- database script to update 2.0.4 database with ldap support +update lams_configuration set config_value='2.0.5' WHERE config_key='version'; +insert into lams_configuration (config_key, config_value) values ('LDAPProvisioningEnabled','true'); +insert into lams_configuration (config_key, config_value) values ('LDAPProviderURL','ldap://192.168.111.15'); +insert into lams_configuration (config_key, config_value) values ('LDAPSecurityAuthentication','simple'); +insert into lams_configuration (config_key, config_value) values ('LDAPPrincipalDNPrefix','cn='); +insert into lams_configuration (config_key, config_value) values ('LDAPPrincipalDNSuffix',',ou=Users,dc=melcoe,dc=mq,dc=edu,dc=au'); +insert into lams_configuration (config_key, config_value) values ('LDAPSecurityProtocol',''); +insert into lams_configuration (config_key, config_value) values ('LDAPTruststorePath',''); +insert into lams_configuration (config_key, config_value) values ('LDAPTruststorePassword',''); +insert into lams_configuration (config_key, config_value) values ('LDAPLoginAttr','uid'); +insert into lams_configuration (config_key, config_value) values ('LDAPFNameAttr','givenName'); +insert into lams_configuration (config_key, config_value) values ('LDAPLNameAttr','sn'); +insert into lams_configuration (config_key, config_value) values ('LDAPEmailAttr','mail'); +insert into lams_configuration (config_key, config_value) values ('LDAPAddr1Attr','postalAddress'); +insert into lams_configuration (config_key, config_value) values ('LDAPAddr2Attr',''); +insert into lams_configuration (config_key, config_value) values ('LDAPAddr3Attr',''); +insert into lams_configuration (config_key, config_value) values ('LDAPCityAttr','l'); +insert into lams_configuration (config_key, config_value) values ('LDAPStateAttr','st'); +insert into lams_configuration (config_key, config_value) values ('LDAPPostcodeAttr','postalCode'); +insert into lams_configuration (config_key, config_value) values ('LDAPCountryAttr',''); +insert into lams_configuration (config_key, config_value) values ('LDAPDayPhoneAttr','telephoneNumber'); +insert into lams_configuration (config_key, config_value) values ('LDAPEveningPhoneAttr','homePhone'); +insert into lams_configuration (config_key, config_value) values ('LDAPFaxAttr','facsimileTelephoneNumber'); +insert into lams_configuration (config_key, config_value) values ('LDAPMobileAttr','mobile'); +insert into lams_configuration (config_key, config_value) values ('LDAPLocaleAttr','preferredLanguage'); +insert into lams_configuration (config_key, config_value) values ('LDAPOrgAttr','deetITSchoolCode'); +insert into lams_configuration (config_key, config_value) values ('LDAPRolesAttr','memberOf'); +insert into lams_configuration (config_key, config_value) values ('LDAPLearnerMap','Student;SchoolSupportStaff;Teacher;SeniorStaff;Principal'); +insert into lams_configuration (config_key, config_value) values ('LDAPMonitorMap','SchoolSupportStaff;Teacher;SeniorStaff;Principal'); +insert into lams_configuration (config_key, config_value) values ('LDAPAuthorMap','Teacher;SeniorStaff;Principal'); +insert into lams_configuration (config_key, config_value) values ('LDAPGroupAdminMap','Teacher;SeniorStaff'); +insert into lams_configuration (config_key, config_value) values ('LDAPGroupManagerMap','Principal'); +insert into lams_configuration (config_key, config_value) values ('LDAPUpdateOnLogin', 'true'); +insert into lams_configuration (config_key, config_value) values ('LDAPOrgField', 'code'); +insert into lams_configuration (config_key, config_value) values ('LDAPOnlyOneOrg', 'true'); +insert into lams_configuration (config_key, config_value) values ('LDAPEncryptPasswordFromBrowser', 'false'); \ No newline at end of file Index: lams_common/src/java/org/lamsfoundation/lams/integration/service/IntegrationService.java =================================================================== diff -u -r4c8a9d0f03629b17fa043781d3eee47ffa88014e -r9b9a8c320a611027445fe94db5cd458c2968700d --- lams_common/src/java/org/lamsfoundation/lams/integration/service/IntegrationService.java (.../IntegrationService.java) (revision 4c8a9d0f03629b17fa043781d3eee47ffa88014e) +++ lams_common/src/java/org/lamsfoundation/lams/integration/service/IntegrationService.java (.../IntegrationService.java) (revision 9b9a8c320a611027445fe94db5cd458c2968700d) @@ -33,7 +33,6 @@ import java.net.URLConnection; import java.net.URLEncoder; import java.text.ParseException; -import java.util.Collections; import java.util.Date; import java.util.HashMap; import java.util.List; @@ -45,21 +44,18 @@ import org.lamsfoundation.lams.integration.ExtUserUseridMap; import org.lamsfoundation.lams.integration.UserInfoFetchException; import org.lamsfoundation.lams.integration.security.RandomPasswordGenerator; -import org.lamsfoundation.lams.themes.CSSThemeVisualElement; import org.lamsfoundation.lams.usermanagement.AuthenticationMethod; import org.lamsfoundation.lams.usermanagement.Organisation; import org.lamsfoundation.lams.usermanagement.OrganisationState; import org.lamsfoundation.lams.usermanagement.OrganisationType; -import org.lamsfoundation.lams.usermanagement.SupportedLocale; +import org.lamsfoundation.lams.usermanagement.Role; import org.lamsfoundation.lams.usermanagement.User; import org.lamsfoundation.lams.usermanagement.UserOrganisation; import org.lamsfoundation.lams.usermanagement.UserOrganisationRole; -import org.lamsfoundation.lams.usermanagement.Role; import org.lamsfoundation.lams.usermanagement.service.IUserManagementService; -import org.lamsfoundation.lams.util.Configuration; -import org.lamsfoundation.lams.util.ConfigurationKeys; import org.lamsfoundation.lams.util.CSVUtil; import org.lamsfoundation.lams.util.HashUtil; +import org.lamsfoundation.lams.util.LangUtil; /** *

@@ -142,7 +138,7 @@ org.setParentOrganisation(serverMap.getOrganisation()); org.setOrganisationType((OrganisationType)service.findById(OrganisationType.class,OrganisationType.CLASS_TYPE)); org.setOrganisationState((OrganisationState)service.findById(OrganisationState.class,OrganisationState.ACTIVE)); - org.setLocale(getLocale(countryIsoCode, langIsoCode)); + org.setLocale(LangUtil.getSupportedLocale(langIsoCode, countryIsoCode)); service.saveOrganisation(org, user.getUserId()); addMemberships(user,org); ExtCourseClassMap map = new ExtCourseClassMap(); @@ -153,30 +149,6 @@ return map; } - private SupportedLocale getLocale(String countryIsoCode, String langIsoCode) { - SupportedLocale locale = null; - if(countryIsoCode.trim().length()>0 && langIsoCode.trim().length()>0){ - locale = service.getSupportedLocale(countryIsoCode, langIsoCode); - }else if(langIsoCode.trim().length()>0){ - List list = service.findByProperty(SupportedLocale.class, "languageIsoCode", langIsoCode); - if(list!=null && list.size()>0){ - Collections.sort(list); - locale = (SupportedLocale)list.get(0); - } - }else if(countryIsoCode.trim().length()>0){ - List list = service.findByProperty(SupportedLocale.class, "countryIsoCode", countryIsoCode); - if(list!=null && list.size()>0){ - Collections.sort(list); - locale = (SupportedLocale)list.get(0); - } - } - if(locale==null){ - String defaultLocale = Configuration.get(ConfigurationKeys.SERVER_LANGUAGE); - locale = service.getSupportedLocale(defaultLocale.substring(0,2), defaultLocale.substring(3)); - } - return locale; - } - private ExtUserUseridMap createExtUserUseridMap(ExtServerOrgMap serverMap, String extUsername) throws UserInfoFetchException { String[] userData = getUserDataFromExtServer(serverMap, extUsername); User user = new User(); @@ -197,19 +169,9 @@ user.setAuthenticationMethod((AuthenticationMethod)service.findById(AuthenticationMethod.class, AuthenticationMethod.DB)); user.setCreateDate(new Date()); user.setDisabledFlag(false); - user.setLocale(getLocale(userData[12],userData[13])); - String flashName = Configuration.get(ConfigurationKeys.DEFAULT_FLASH_THEME); - List list = service.findByProperty(CSSThemeVisualElement.class, "name", flashName); - if (list!=null && list.size()>0) { - CSSThemeVisualElement flashTheme = (CSSThemeVisualElement)list.get(0); - user.setFlashTheme(flashTheme); - } - String htmlName = Configuration.get(ConfigurationKeys.DEFAULT_HTML_THEME); - list = getService().findByProperty(CSSThemeVisualElement.class, "name", htmlName); - if (list!=null && list.size()>0) { - CSSThemeVisualElement htmlTheme = (CSSThemeVisualElement)list.get(0); - user.setHtmlTheme(htmlTheme); - } + user.setLocale(LangUtil.getSupportedLocale(userData[13], userData[12])); + user.setFlashTheme(service.getDefaultFlashTheme()); + user.setHtmlTheme(service.getDefaultHtmlTheme()); service.save(user); ExtUserUseridMap map = new ExtUserUseridMap(); map.setExtServerOrgMap(serverMap); Index: lams_common/src/java/org/lamsfoundation/lams/usermanagement/service/IUserManagementService.java =================================================================== diff -u -rd2ea89fd48d3a27209865fa2d92ccf2901b531fd -r9b9a8c320a611027445fe94db5cd458c2968700d --- lams_common/src/java/org/lamsfoundation/lams/usermanagement/service/IUserManagementService.java (.../IUserManagementService.java) (revision d2ea89fd48d3a27209865fa2d92ccf2901b531fd) +++ lams_common/src/java/org/lamsfoundation/lams/usermanagement/service/IUserManagementService.java (.../IUserManagementService.java) (revision 9b9a8c320a611027445fe94db5cd458c2968700d) @@ -33,7 +33,6 @@ 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; import org.lamsfoundation.lams.usermanagement.UserOrganisation; import org.lamsfoundation.lams.usermanagement.dto.OrganisationDTO; @@ -294,14 +293,6 @@ */ public Organisation saveOrganisation( Organisation organisation, Integer userID ); - /** - * - * @param language - * @param country - * @return SupportedLocale - */ - public SupportedLocale getSupportedLocale(String language, String country); - public List getUserManageBeans(Integer orgId); /** Remove a user from the system completely. Only able to be done if they don't have any @@ -391,12 +382,6 @@ */ public CSSThemeVisualElement getDefaultHtmlTheme(); - /** - * Get default server locale. - * @return server default supported locale object - */ - public SupportedLocale getDefaultLocale(); - public void auditPasswordChanged(User user, String moduleName); public void auditUserCreated(User user, String moduleName); Index: lams_common/src/java/org/lamsfoundation/lams/usermanagement/service/LdapService.java =================================================================== diff -u -r3de11bf54a449905b116b6a3d2569c91b286a227 -r9b9a8c320a611027445fe94db5cd458c2968700d --- lams_common/src/java/org/lamsfoundation/lams/usermanagement/service/LdapService.java (.../LdapService.java) (revision 3de11bf54a449905b116b6a3d2569c91b286a227) +++ lams_common/src/java/org/lamsfoundation/lams/usermanagement/service/LdapService.java (.../LdapService.java) (revision 9b9a8c320a611027445fe94db5cd458c2968700d) @@ -48,10 +48,12 @@ import org.lamsfoundation.lams.usermanagement.OrganisationState; import org.lamsfoundation.lams.usermanagement.OrganisationType; import org.lamsfoundation.lams.usermanagement.Role; +import org.lamsfoundation.lams.usermanagement.SupportedLocale; import org.lamsfoundation.lams.usermanagement.User; import org.lamsfoundation.lams.usermanagement.UserOrganisation; import org.lamsfoundation.lams.util.Configuration; import org.lamsfoundation.lams.util.ConfigurationKeys; +import org.lamsfoundation.lams.util.LangUtil; /** * @author jliew @@ -76,12 +78,36 @@ user.setFirstName(map.get("fname")); user.setLastName(map.get("lname")); user.setEmail(map.get("email")); - user.setDayPhone(map.get("phone")); + user.setAddressLine1(map.get("address1")); + user.setAddressLine2(map.get("address2")); + user.setAddressLine3(map.get("address3")); + user.setCity(map.get("city")); + user.setState(map.get("state")); + user.setPostcode(map.get("postcode")); + user.setCountry(map.get("country")); + user.setDayPhone(map.get("dayphone")); + user.setEveningPhone(map.get("eveningphone")); user.setFax(map.get("fax")); user.setMobilePhone(map.get("mobile")); + user.setLocale(getLocale(map.get("locale"))); getService().save(user); } + // tries to match ldap attribute to a locale, otherwise returns server default + private SupportedLocale getLocale(String attribute) { + if (attribute!=null && attribute.trim().length()>0) { + int index = attribute.indexOf("_"); + if (index>0) { + String language = attribute.substring(0, index); + String country = attribute.substring(index); + return LangUtil.getSupportedLocale(language, country); + } else { + return LangUtil.getSupportedLocale(attribute); + } + } + return LangUtil.getDefaultLocale(); + } + public boolean createLDAPUser(Attributes attrs) { User user = new User(); try { @@ -98,7 +124,15 @@ user.setFirstName(map.get("fname")); user.setLastName(map.get("lname")); user.setEmail(map.get("email")); - user.setDayPhone(map.get("phone")); + user.setAddressLine1(map.get("address1")); + user.setAddressLine2(map.get("address2")); + user.setAddressLine3(map.get("address3")); + user.setCity(map.get("city")); + user.setState(map.get("state")); + user.setPostcode(map.get("postcode")); + user.setCountry(map.get("country")); + user.setDayPhone(map.get("dayphone")); + user.setEveningPhone(map.get("eveningphone")); user.setFax(map.get("fax")); user.setMobilePhone(map.get("mobile")); user.setAuthenticationMethod((AuthenticationMethod)service @@ -107,7 +141,7 @@ user.setHtmlTheme(service.getDefaultHtmlTheme()); user.setDisabledFlag(false); user.setCreateDate(new Date()); - user.setLocale(service.getDefaultLocale()); + user.setLocale(getLocale(map.get("locale"))); service.save(user); service.auditUserCreated(user, "common"); return true; @@ -127,9 +161,18 @@ map.put("fname", getSingleAttributeString(attrs.get(Configuration.get(ConfigurationKeys.LDAP_FIRST_NAME_ATTR)))); map.put("lname", getSingleAttributeString(attrs.get(Configuration.get(ConfigurationKeys.LDAP_LAST_NAME_ATTR)))); map.put("email", getSingleAttributeString(attrs.get(Configuration.get(ConfigurationKeys.LDAP_EMAIL_ATTR)))); - map.put("phone", getSingleAttributeString(attrs.get(Configuration.get(ConfigurationKeys.LDAP_PHONE_ATTR)))); + map.put("address1", getSingleAttributeString(attrs.get(Configuration.get(ConfigurationKeys.LDAP_ADDR1_ATTR)))); + map.put("address2", getSingleAttributeString(attrs.get(Configuration.get(ConfigurationKeys.LDAP_ADDR2_ATTR)))); + map.put("address3", getSingleAttributeString(attrs.get(Configuration.get(ConfigurationKeys.LDAP_ADDR3_ATTR)))); + map.put("city", getSingleAttributeString(attrs.get(Configuration.get(ConfigurationKeys.LDAP_CITY_ATTR)))); + map.put("state", getSingleAttributeString(attrs.get(Configuration.get(ConfigurationKeys.LDAP_STATE_ATTR)))); + map.put("postcode", getSingleAttributeString(attrs.get(Configuration.get(ConfigurationKeys.LDAP_POSTCODE_ATTR)))); + map.put("country", getSingleAttributeString(attrs.get(Configuration.get(ConfigurationKeys.LDAP_COUNTRY_ATTR)))); + map.put("dayphone", getSingleAttributeString(attrs.get(Configuration.get(ConfigurationKeys.LDAP_DAY_PHONE_ATTR)))); + map.put("eveningphone", getSingleAttributeString(attrs.get(Configuration.get(ConfigurationKeys.LDAP_EVENING_PHONE_ATTR)))); map.put("fax", getSingleAttributeString(attrs.get(Configuration.get(ConfigurationKeys.LDAP_FAX_ATTR)))); map.put("mobile", getSingleAttributeString(attrs.get(Configuration.get(ConfigurationKeys.LDAP_MOBILE_ATTR)))); + map.put("locale", getSingleAttributeString(attrs.get(Configuration.get(ConfigurationKeys.LDAP_LOCALE_ATTR)))); } catch (Exception e) { log.error("===> Exception occurred while getting LDAP user attributes: ", e); } Index: lams_common/src/java/org/lamsfoundation/lams/usermanagement/service/UserManagementService.java =================================================================== diff -u -rd2ea89fd48d3a27209865fa2d92ccf2901b531fd -r9b9a8c320a611027445fe94db5cd458c2968700d --- lams_common/src/java/org/lamsfoundation/lams/usermanagement/service/UserManagementService.java (.../UserManagementService.java) (revision d2ea89fd48d3a27209865fa2d92ccf2901b531fd) +++ lams_common/src/java/org/lamsfoundation/lams/usermanagement/service/UserManagementService.java (.../UserManagementService.java) (revision 9b9a8c320a611027445fe94db5cd458c2968700d) @@ -42,7 +42,6 @@ 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; import org.lamsfoundation.lams.usermanagement.UserOrganisation; import org.lamsfoundation.lams.usermanagement.UserOrganisationRole; @@ -59,7 +58,6 @@ import org.lamsfoundation.lams.util.ConfigurationKeys; import org.lamsfoundation.lams.util.HashUtil; import org.lamsfoundation.lams.util.MessageService; -import org.lamsfoundation.lams.util.audit.AuditService; import org.lamsfoundation.lams.util.audit.IAuditService; import org.lamsfoundation.lams.web.session.SessionManager; import org.lamsfoundation.lams.web.util.AttributeNames; @@ -533,16 +531,6 @@ return organisation; } - public SupportedLocale getSupportedLocale(String language, String country) { - Map properties = new HashMap(); - properties.put("languageIsoCode",language); - if(country!=null){ - properties.put("countryIsoCode",country); - } - List results = findByProperties(SupportedLocale.class,properties); - return results.isEmpty() ? null : (SupportedLocale)results.get(0); - } - @SuppressWarnings("unchecked") public List getUserManageBeans(Integer orgId) { String query = "select u.userId,u.login,u.title,u.firstName,u.lastName, r " + @@ -907,11 +895,6 @@ return (list!=null ? (CSSThemeVisualElement)list.get(0) : null); } - public SupportedLocale getDefaultLocale() { - String localeName = Configuration.get(ConfigurationKeys.SERVER_LANGUAGE); - return getSupportedLocale(localeName.substring(0,2),localeName.substring(3)); - } - public void auditPasswordChanged(User user, String moduleName) { String[] args = new String[1]; args[0] = user.getLogin() + "(" + user.getUserId() + ")"; Index: lams_common/src/java/org/lamsfoundation/lams/util/ConfigurationKeys.java =================================================================== diff -u -r20ce199831888b996374f8873220db09b375a74c -r9b9a8c320a611027445fe94db5cd458c2968700d --- lams_common/src/java/org/lamsfoundation/lams/util/ConfigurationKeys.java (.../ConfigurationKeys.java) (revision 20ce199831888b996374f8873220db09b375a74c) +++ lams_common/src/java/org/lamsfoundation/lams/util/ConfigurationKeys.java (.../ConfigurationKeys.java) (revision 9b9a8c320a611027445fe94db5cd458c2968700d) @@ -159,12 +159,32 @@ public static String LDAP_EMAIL_ATTR = "LDAPEmailAttr"; - public static String LDAP_PHONE_ATTR = "LDAPPhoneAttr"; + public static String LDAP_ADDR1_ATTR = "LDAPAddr1Attr"; + public static String LDAP_ADDR2_ATTR = "LDAPAddr2Attr"; + + public static String LDAP_ADDR3_ATTR = "LDAPAddr3Attr"; + + public static String LDAP_CITY_ATTR = "LDAPCityAttr"; + + public static String LDAP_STATE_ATTR = "LDAPStateAttr"; + + public static String LDAP_POSTCODE_ATTR = "LDAPPostcodeAttr"; + + public static String LDAP_COUNTRY_ATTR = "LDAPCountryAttr"; + + public static String LDAP_DAY_PHONE_ATTR = "LDAPDayPhoneAttr"; + + public static String LDAP_EVENING_PHONE_ATTR = "LDAPEveningPhoneAttr"; + public static String LDAP_FAX_ATTR = "LDAPFaxAttr"; public static String LDAP_MOBILE_ATTR = "LDAPMobileAttr"; + //public static String LDAP_DISABLED_ATTR = "LDAPDisabledAttr"; + + public static String LDAP_LOCALE_ATTR = "LDAPLocaleAttr"; + public static String LDAP_ORG_ATTR = "LDAPOrgAttr"; public static String LDAP_ROLES_ATTR = "LDAPRolesAttr"; Index: lams_common/src/java/org/lamsfoundation/lams/util/LangUtil.java =================================================================== diff -u --- lams_common/src/java/org/lamsfoundation/lams/util/LangUtil.java (revision 0) +++ lams_common/src/java/org/lamsfoundation/lams/util/LangUtil.java (revision 9b9a8c320a611027445fe94db5cd458c2968700d) @@ -0,0 +1,103 @@ +/**************************************************************** + * Copyright (C) 2005 LAMS Foundation (http://lamsfoundation.org) + * ============================================================= + * License Information: http://lamsfoundation.org/licensing/lams/2.0/ + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2.0 + * as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + */ + +/* $Id$ */ +package org.lamsfoundation.lams.util; + +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +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; + +/** + * @author jliew + * + */ +public class LangUtil { + + 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; + } + + /* + * 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; + } +} + \ No newline at end of file