| 1 package org.appfuse.webapp.action; 2 3 import javax.servlet.http.HttpServletRequest ; 4 import javax.servlet.http.HttpServletResponse ; 5 6 import org.apache.struts.action.ActionForm; 7 import org.apache.struts.action.ActionForward; 8 import org.apache.struts.action.ActionMapping; 9 import org.apache.struts.action.ActionMessage; 10 import org.apache.struts.action.ActionMessages; 11 import org.apache.struts.util.MessageResources; 12 import org.appfuse.model.User; 13 import org.appfuse.service.MailEngine; 14 import org.appfuse.service.UserManager; 15 import org.appfuse.webapp.util.RequestUtil; 16 import org.springframework.mail.SimpleMailMessage; 17 18 19 31 public final class PasswordHintAction extends BaseAction { 32 33 public ActionForward execute(ActionMapping mapping, ActionForm form, 34 HttpServletRequest request, 35 HttpServletResponse response) 36 throws Exception { 37 MessageResources resources = getResources(request); 38 ActionMessages errors = new ActionMessages(); 39 String username = request.getParameter("username"); 40 41 if (username == null) { 43 log.warn("Username not specified, notifying user that it's a required field."); 44 45 errors.add(ActionMessages.GLOBAL_MESSAGE, 46 new ActionMessage("errors.required", 47 resources.getMessage("userForm.username"))); 48 saveErrors(request, errors); 49 return mapping.findForward("previousPage"); 50 } 51 52 if (log.isDebugEnabled()) { 53 log.debug("Processing Password Hint..."); 54 } 55 56 ActionMessages messages = new ActionMessages(); 57 58 try { 60 UserManager userMgr = (UserManager) getBean("userManager"); 61 User user = userMgr.getUserByUsername(username); 62 63 StringBuffer msg = new StringBuffer (); 64 msg.append("Your password hint is: " + user.getPasswordHint()); 65 msg.append("\n\nLogin at: " + RequestUtil.getAppURL(request)); 66 67 SimpleMailMessage message = (SimpleMailMessage) getBean("mailMessage"); 68 message.setTo(user.getEmail()); 69 String subject = '[' + resources.getMessage("webapp.name") + "] " + 70 resources.getMessage("userForm.passwordHint"); 71 message.setSubject(subject); 72 message.setText(msg.toString()); 73 74 MailEngine mailEngine = (MailEngine) getBean("mailEngine"); 75 mailEngine.send(message); 76 77 messages.add(ActionMessages.GLOBAL_MESSAGE, 78 new ActionMessage("login.passwordHint.sent", username, 79 user.getEmail())); 80 saveMessages(request.getSession(), messages); 81 } catch (Exception e) { 82 e.printStackTrace(); 83 errors.add(ActionMessages.GLOBAL_MESSAGE, 85 new ActionMessage("login.passwordHint.error", username)); 86 saveErrors(request, errors); 87 } 88 89 return mapping.findForward("previousPage"); 90 } 91 } 92 | Popular Tags |