Index: lams_central/src/java/org/lamsfoundation/lams/web/ProfileSaveAction.java =================================================================== RCS file: /usr/local/cvsroot/lams_central/src/java/org/lamsfoundation/lams/web/ProfileSaveAction.java,v diff -u -r1.12 -r1.12.8.1 --- lams_central/src/java/org/lamsfoundation/lams/web/ProfileSaveAction.java 28 Jan 2009 00:10:32 -0000 1.12 +++ lams_central/src/java/org/lamsfoundation/lams/web/ProfileSaveAction.java 1 Mar 2010 00:16:47 -0000 1.12.8.1 @@ -40,7 +40,7 @@ import org.apache.struts.action.ActionMessage; import org.apache.struts.action.ActionMessages; import org.apache.struts.action.DynaActionForm; -import org.hibernate.Hibernate; +import org.lamsfoundation.lams.themes.CSSThemeVisualElement; import org.lamsfoundation.lams.usermanagement.SupportedLocale; import org.lamsfoundation.lams.usermanagement.User; import org.lamsfoundation.lams.usermanagement.service.IUserManagementService; @@ -66,79 +66,83 @@ */ public class ProfileSaveAction extends Action { - private static Logger log = Logger.getLogger(ProfileSaveAction.class); - private static IUserManagementService service; + private static Logger log = Logger.getLogger(ProfileSaveAction.class); + private static IUserManagementService service; - public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, - HttpServletResponse response) throws Exception { + public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, + HttpServletResponse response) throws Exception { - if (isCancelled(request)) { - return mapping.findForward("profile"); - } + if (isCancelled(request)) { + return mapping.findForward("profile"); + } - ActionMessages errors = new ActionMessages(); - User requestor = (User) getService().getUserByLogin(request.getRemoteUser()); - DynaActionForm userForm = (DynaActionForm) form; + ActionMessages errors = new ActionMessages(); + User requestor = (User) getService().getUserByLogin(request.getRemoteUser()); + DynaActionForm userForm = (DynaActionForm) form; - // check requestor is same as user being edited - log.debug("requestor: " + requestor.getLogin() + ", form login: " + userForm.get("login")); - if (!requestor.getLogin().equals(userForm.get("login"))) { - errors.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("error.authorisation")); - saveErrors(request, errors); - return (mapping.getInputForward()); - } + // check requestor is same as user being edited + log.debug("requestor: " + requestor.getLogin() + ", form login: " + userForm.get("login")); + if (!requestor.getLogin().equals(userForm.get("login"))) { + errors.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("error.authorisation")); + saveErrors(request, errors); + return (mapping.getInputForward()); + } - // (dyna)form validation - if ((userForm.get("firstName") == null) || (userForm.getString("firstName").trim().length() == 0)) { - errors.add("firstName", new ActionMessage("error.firstname.required")); - } - if ((userForm.get("lastName") == null) || (userForm.getString("lastName").trim().length() == 0)) { - errors.add("lastName", new ActionMessage("error.lastname.required")); - } - if ((userForm.get("email") == null) || (userForm.getString("email").trim().length() == 0)) { - errors.add("email", new ActionMessage("error.email.required")); - } else { - Pattern p = Pattern.compile(".+@.+\\.[a-z]+"); - Matcher m = p.matcher(userForm.getString("email")); - if (!m.matches()) { - errors.add("email", new ActionMessage("error.valid.email.required")); - } - } + // (dyna)form validation + if ((userForm.get("firstName") == null) || (userForm.getString("firstName").trim().length() == 0)) { + errors.add("firstName", new ActionMessage("error.firstname.required")); + } + if ((userForm.get("lastName") == null) || (userForm.getString("lastName").trim().length() == 0)) { + errors.add("lastName", new ActionMessage("error.lastname.required")); + } + if ((userForm.get("email") == null) || (userForm.getString("email").trim().length() == 0)) { + errors.add("email", new ActionMessage("error.email.required")); + } else { + Pattern p = Pattern.compile(".+@.+\\.[a-z]+"); + Matcher m = p.matcher(userForm.getString("email")); + if (!m.matches()) { + errors.add("email", new ActionMessage("error.valid.email.required")); + } + } - if (!errors.isEmpty()) { - saveErrors(request, errors); - return (mapping.findForward("editprofile")); - } + if (!errors.isEmpty()) { + saveErrors(request, errors); + return (mapping.findForward("editprofile")); + } - BeanUtils.copyProperties(requestor, userForm); - SupportedLocale locale = (SupportedLocale) getService().findById(SupportedLocale.class, - (Integer) userForm.get("localeId")); - requestor.setLocale(locale); + BeanUtils.copyProperties(requestor, userForm); + SupportedLocale locale = (SupportedLocale) getService().findById(SupportedLocale.class, + (Integer) userForm.get("localeId")); + requestor.setLocale(locale); - if (userForm.get("disableLamsCommunityUsername") != null - && (Boolean) userForm.get("disableLamsCommunityUsername")) { - requestor.setLamsCommunityToken(null); - requestor.setLamsCommunityUsername(null); - } + CSSThemeVisualElement theme = (CSSThemeVisualElement) getService().findById(CSSThemeVisualElement.class, + (Long) userForm.get("userTheme")); + requestor.setHtmlTheme(theme); - getService().save(requestor); - log.debug("profile edited: " + requestor); + if (userForm.get("disableLamsCommunityUsername") != null + && (Boolean) userForm.get("disableLamsCommunityUsername")) { + requestor.setLamsCommunityToken(null); + requestor.setLamsCommunityUsername(null); + } - // replace UserDTO in the shared session - HttpSession ss = SessionManager.getSession(); - ss.removeAttribute(AttributeNames.USER); - ss.setAttribute(AttributeNames.USER, requestor.getUserDTO()); + getService().save(requestor); + log.debug("profile edited: " + requestor); - return mapping.findForward("profile"); - } + // replace UserDTO in the shared session + HttpSession ss = SessionManager.getSession(); + ss.removeAttribute(AttributeNames.USER); + ss.setAttribute(AttributeNames.USER, requestor.getUserDTO()); - private IUserManagementService getService() { - if (service == null) { - WebApplicationContext ctx = WebApplicationContextUtils.getRequiredWebApplicationContext(getServlet() - .getServletContext()); - service = (IUserManagementService) ctx.getBean("userManagementService"); + return mapping.findForward("profile"); } - return service; - } + private IUserManagementService getService() { + if (service == null) { + WebApplicationContext ctx = WebApplicationContextUtils.getRequiredWebApplicationContext(getServlet() + .getServletContext()); + service = (IUserManagementService) ctx.getBean("userManagementService"); + } + return service; + } + } \ No newline at end of file