Index: lams_admin/src/java/org/lamsfoundation/lams/admin/adminApplicationContext.xml =================================================================== diff -u -rfcc5eca8a605afdc9e927366827553a7862000cd -rd5b05f6e239a87908856f9f4251a487158ed9ca8 --- lams_admin/src/java/org/lamsfoundation/lams/admin/adminApplicationContext.xml (.../adminApplicationContext.xml) (revision fcc5eca8a605afdc9e927366827553a7862000cd) +++ lams_admin/src/java/org/lamsfoundation/lams/admin/adminApplicationContext.xml (.../adminApplicationContext.xml) (revision d5b05f6e239a87908856f9f4251a487158ed9ca8) @@ -21,6 +21,9 @@ - + + + + \ No newline at end of file Index: lams_admin/src/java/org/lamsfoundation/lams/admin/service/ImportService.java =================================================================== diff -u -ra1046dbdfb10ad1f7a61b8d50acbff46ac7c96ab -rd5b05f6e239a87908856f9f4251a487158ed9ca8 --- lams_admin/src/java/org/lamsfoundation/lams/admin/service/ImportService.java (.../ImportService.java) (revision a1046dbdfb10ad1f7a61b8d50acbff46ac7c96ab) +++ lams_admin/src/java/org/lamsfoundation/lams/admin/service/ImportService.java (.../ImportService.java) (revision d5b05f6e239a87908856f9f4251a487158ed9ca8) @@ -41,6 +41,7 @@ import org.lamsfoundation.lams.logevent.LogEvent; import org.lamsfoundation.lams.logevent.service.ILogEventService; import org.lamsfoundation.lams.themes.Theme; +import org.lamsfoundation.lams.timezone.service.ITimezoneService; import org.lamsfoundation.lams.usermanagement.AuthenticationMethod; import org.lamsfoundation.lams.usermanagement.Organisation; import org.lamsfoundation.lams.usermanagement.OrganisationState; @@ -68,34 +69,11 @@ public class ImportService implements IImportService { private static Logger log = Logger.getLogger(ImportService.class); - public IUserManagementService service; - public MessageService messageService; - public ILogEventService logEventService; + private IUserManagementService service; + private MessageService messageService; + private ILogEventService logEventService; + private ITimezoneService timezoneService; - public IUserManagementService getService() { - return service; - } - - public void setService(IUserManagementService service) { - this.service = service; - } - - public MessageService getMessageService() { - return messageService; - } - - public void setMessageService(MessageService messageService) { - this.messageService = messageService; - } - - public ILogEventService getLogEventService() { - return logEventService; - } - - public void setLogEventService(ILogEventService logEventService) { - this.logEventService = logEventService; - } - // spreadsheet column indexes for user spreadsheet private static final short LOGIN = 0; private static final short PASSWORD = 1; @@ -612,7 +590,7 @@ user.setFax(parseStringCell(row.getCell(ImportService.FAX))); user.setDisabledFlag(false); user.setCreateDate(new Date()); - user.setTimeZone(user.getTimeZone()); + user.setTimeZone(timezoneService.getServerTimezone().getTimezoneId()); user.setTutorialsDisabled(false); user.setFirstLogin(true); @@ -839,4 +817,24 @@ logEventService.logEvent(LogEvent.TYPE_USER_ORG_ADMIN, userDTO != null ? userDTO.getUserID() : null, null, null, null, message); } + + // --------------------------------------------------------------------- + // Inversion of Control Methods - Method injection + // --------------------------------------------------------------------- + + public void setService(IUserManagementService service) { + this.service = service; + } + + public void setMessageService(MessageService messageService) { + this.messageService = messageService; + } + + public void setLogEventService(ILogEventService logEventService) { + this.logEventService = logEventService; + } + + public void setTimezoneService(ITimezoneService timezoneService) { + this.timezoneService = timezoneService; + } } Index: lams_central/src/java/org/lamsfoundation/lams/web/action/SignupAction.java =================================================================== diff -u -r6af1dca405b378528e883a2853703bbf75e7d68c -rd5b05f6e239a87908856f9f4251a487158ed9ca8 --- lams_central/src/java/org/lamsfoundation/lams/web/action/SignupAction.java (.../SignupAction.java) (revision 6af1dca405b378528e883a2853703bbf75e7d68c) +++ lams_central/src/java/org/lamsfoundation/lams/web/action/SignupAction.java (.../SignupAction.java) (revision d5b05f6e239a87908856f9f4251a487158ed9ca8) @@ -15,8 +15,8 @@ import org.apache.struts.action.DynaActionForm; import org.lamsfoundation.lams.signup.model.SignupOrganisation; import org.lamsfoundation.lams.signup.service.ISignupService; +import org.lamsfoundation.lams.timezone.service.ITimezoneService; import org.lamsfoundation.lams.usermanagement.User; -import org.lamsfoundation.lams.util.CommonConstants; import org.lamsfoundation.lams.util.Configuration; import org.lamsfoundation.lams.util.ConfigurationKeys; import org.lamsfoundation.lams.util.Emailer; @@ -31,15 +31,17 @@ private static Logger log = Logger.getLogger(SignupAction.class); private static ISignupService signupService = null; + private static ITimezoneService timezoneService = null; @Override public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { - if (signupService == null) { + if (signupService == null || timezoneService == null) { WebApplicationContext wac = WebApplicationContextUtils .getRequiredWebApplicationContext(getServlet().getServletContext()); signupService = (ISignupService) wac.getBean("signupService"); + timezoneService = (ITimezoneService) wac.getBean("timezoneService"); } request.setAttribute("countryCodes", LanguageUtil.getCountryCodes(true)); @@ -71,7 +73,6 @@ HttpServletResponse response) { try { - DynaActionForm signupForm = (DynaActionForm) form; // validation @@ -87,6 +88,7 @@ user.setLastName(signupForm.getString("lastName")); user.setEmail(signupForm.getString("email")); user.setCountry(signupForm.getString("country")); + user.setTimeZone(timezoneService.getServerTimezone().getTimezoneId()); String salt = HashUtil.salt(); user.setSalt(salt); user.setPassword(HashUtil.sha256(signupForm.getString("password"), salt)); Index: lams_common/src/java/org/lamsfoundation/lams/integration/service/IntegrationService.java =================================================================== diff -u -reb06cf9300f02897c13bd577689deacb2cf4b5fc -rd5b05f6e239a87908856f9f4251a487158ed9ca8 --- lams_common/src/java/org/lamsfoundation/lams/integration/service/IntegrationService.java (.../IntegrationService.java) (revision eb06cf9300f02897c13bd577689deacb2cf4b5fc) +++ lams_common/src/java/org/lamsfoundation/lams/integration/service/IntegrationService.java (.../IntegrationService.java) (revision d5b05f6e239a87908856f9f4251a487158ed9ca8) @@ -62,6 +62,7 @@ import org.lamsfoundation.lams.integration.util.LoginRequestDispatcher; import org.lamsfoundation.lams.lesson.Lesson; import org.lamsfoundation.lams.lesson.service.ILessonService; +import org.lamsfoundation.lams.timezone.service.ITimezoneService; import org.lamsfoundation.lams.tool.service.ILamsCoreToolService; import org.lamsfoundation.lams.usermanagement.AuthenticationMethod; import org.lamsfoundation.lams.usermanagement.Organisation; @@ -96,6 +97,7 @@ private IUserManagementService service; private ILessonService lessonService; private ILamsCoreToolService toolService; + private ITimezoneService timezoneService; /** * Returns integration server or LTI tool consumer by its human-entered server key/server id. @@ -468,6 +470,7 @@ user.setCreateDate(new Date()); user.setDisabledFlag(false); user.setLocale(LanguageUtil.getSupportedLocale(userData[13], userData[12])); + user.setTimeZone(timezoneService.getServerTimezone().getTimezoneId()); user.setTheme(service.getDefaultTheme()); service.saveUser(user); ExtUserUseridMap extUserUseridMap = new ExtUserUseridMap(); @@ -904,6 +907,10 @@ return (ExtCourseClassMap) list.get(0); } } + + // --------------------------------------------------------------------- + // Inversion of Control Methods - Method injection + // --------------------------------------------------------------------- public void setService(IUserManagementService service) { this.service = service; @@ -913,16 +920,16 @@ this.lessonService = lessonService; } - public ILessonService getLessonService() { - return lessonService; - } - public void setGradebookService(IGradebookService gradebookService) { this.gradebookService = gradebookService; } public void setToolService(ILamsCoreToolService toolService) { this.toolService = toolService; } + + public void setTimezoneService(ITimezoneService timezoneService) { + this.timezoneService = timezoneService; + } } \ No newline at end of file Index: lams_common/src/java/org/lamsfoundation/lams/integrationContext.xml =================================================================== diff -u -rde884cf8c730a25d2f2296f7a768d3fd45508c99 -rd5b05f6e239a87908856f9f4251a487158ed9ca8 --- lams_common/src/java/org/lamsfoundation/lams/integrationContext.xml (.../integrationContext.xml) (revision de884cf8c730a25d2f2296f7a768d3fd45508c99) +++ lams_common/src/java/org/lamsfoundation/lams/integrationContext.xml (.../integrationContext.xml) (revision d5b05f6e239a87908856f9f4251a487158ed9ca8) @@ -9,7 +9,8 @@ - + + Index: lams_common/src/java/org/lamsfoundation/lams/usermanagement/ldapContext.xml =================================================================== diff -u -ra6641bf9262a01d07740a517643f8fe187ec5b1f -rd5b05f6e239a87908856f9f4251a487158ed9ca8 --- lams_common/src/java/org/lamsfoundation/lams/usermanagement/ldapContext.xml (.../ldapContext.xml) (revision a6641bf9262a01d07740a517643f8fe187ec5b1f) +++ lams_common/src/java/org/lamsfoundation/lams/usermanagement/ldapContext.xml (.../ldapContext.xml) (revision d5b05f6e239a87908856f9f4251a487158ed9ca8) @@ -7,6 +7,7 @@ + Index: lams_common/src/java/org/lamsfoundation/lams/usermanagement/service/LdapService.java =================================================================== diff -u -rfcc5eca8a605afdc9e927366827553a7862000cd -rd5b05f6e239a87908856f9f4251a487158ed9ca8 --- lams_common/src/java/org/lamsfoundation/lams/usermanagement/service/LdapService.java (.../LdapService.java) (revision fcc5eca8a605afdc9e927366827553a7862000cd) +++ lams_common/src/java/org/lamsfoundation/lams/usermanagement/service/LdapService.java (.../LdapService.java) (revision d5b05f6e239a87908856f9f4251a487158ed9ca8) @@ -46,6 +46,7 @@ import org.apache.commons.lang.StringUtils; import org.apache.log4j.Logger; import org.lamsfoundation.lams.integration.security.RandomPasswordGenerator; +import org.lamsfoundation.lams.timezone.service.ITimezoneService; import org.lamsfoundation.lams.usermanagement.AuthenticationMethod; import org.lamsfoundation.lams.usermanagement.Organisation; import org.lamsfoundation.lams.usermanagement.OrganisationState; @@ -67,21 +68,15 @@ private Logger log = Logger.getLogger(LdapService.class); private IUserManagementService service; + + private ITimezoneService timezoneService; private static final int BULK_UPDATE_CREATED = 0; private static final int BULK_UPDATE_UPDATED = 1; private static final int BULK_UPDATE_DISABLED = 2; - public IUserManagementService getService() { - return service; - } - - public void setService(IUserManagementService service) { - this.service = service; - } - @Override public void updateLDAPUser(User user, Attributes attrs) { HashMap map = getLDAPUserAttributes(attrs); @@ -102,7 +97,7 @@ user.setMobilePhone(map.get("mobile")); user.setLocale(getLocale(map.get("locale"))); user.setDisabledFlag(getDisabledBoolean(attrs)); - getService().saveUser(user); + service.saveUser(user); } // tries to match ldap attribute to a locale, otherwise returns server @@ -159,7 +154,7 @@ user.setDisabledFlag(getDisabledBoolean(attrs)); user.setCreateDate(new Date()); user.setLocale(getLocale(map.get("locale"))); - user.setTimeZone(user.getTimeZone()); + user.setTimeZone(timezoneService.getServerTimezone().getTimezoneId()); user.setTutorialsDisabled(false); user.setFirstLogin(true); service.saveUser(user); @@ -583,12 +578,12 @@ // create, update, or disable this user private int bulkUpdateLDAPUser(String login, Attributes attrs, boolean disabled) { int returnCode = -1; - User user = getService().getUserByLogin(login); + User user = service.getUserByLogin(login); if (!disabled) { if (user == null) { log.info("Creating new user for LDAP username: " + login); if (createLDAPUser(attrs)) { - user = getService().getUserByLogin(login); + user = service.getUserByLogin(login); returnCode = LdapService.BULK_UPDATE_CREATED; } else { log.error("Couldn't create new user for LDAP username: " + login); @@ -603,7 +598,7 @@ } else { // remove user from groups and set disabled flag if (user != null) { - getService().disableUser(user.getUserId()); + service.disableUser(user.getUserId()); returnCode = LdapService.BULK_UPDATE_DISABLED; } } @@ -622,5 +617,17 @@ } return null; } + + // --------------------------------------------------------------------- + // Inversion of Control Methods - Method injection + // --------------------------------------------------------------------- + public void setService(IUserManagementService service) { + this.service = service; + } + + public void setTimezoneService(ITimezoneService timezoneService) { + this.timezoneService = timezoneService; + } + }