1
22
23 package com.liferay.portal.action;
24
25 import com.liferay.portal.NoSuchUserException;
26 import com.liferay.portal.UserPasswordException;
27 import com.liferay.portal.kernel.servlet.SessionErrors;
28 import com.liferay.portal.kernel.util.Constants;
29 import com.liferay.portal.kernel.util.ParamUtil;
30 import com.liferay.portal.kernel.util.Validator;
31 import com.liferay.portal.security.auth.PrincipalException;
32 import com.liferay.portal.service.UserServiceUtil;
33 import com.liferay.portal.struts.ActionConstants;
34 import com.liferay.portal.util.PortalUtil;
35 import com.liferay.portal.util.WebKeys;
36
37 import javax.servlet.http.HttpServletRequest;
38 import javax.servlet.http.HttpServletResponse;
39 import javax.servlet.http.HttpSession;
40
41 import org.apache.struts.action.Action;
42 import org.apache.struts.action.ActionForm;
43 import org.apache.struts.action.ActionForward;
44 import org.apache.struts.action.ActionMapping;
45
46
52 public class UpdatePasswordAction extends Action {
53
54 public ActionForward execute(
55 ActionMapping mapping, ActionForm form, HttpServletRequest request,
56 HttpServletResponse response)
57 throws Exception {
58
59 String cmd = ParamUtil.getString(request, Constants.CMD);
60
61 if (Validator.isNull(cmd)) {
62 return mapping.findForward("portal.update_password");
63 }
64
65 try {
66 updatePassword(request, response);
67
68 return mapping.findForward(ActionConstants.COMMON_REFERER);
69 }
70 catch (Exception e) {
71 if (e instanceof UserPasswordException) {
72 SessionErrors.add(request, e.getClass().getName(), e);
73
74 return mapping.findForward("portal.update_password");
75 }
76 else if (e instanceof NoSuchUserException ||
77 e instanceof PrincipalException) {
78
79 SessionErrors.add(request, e.getClass().getName());
80
81 return mapping.findForward("portal.error");
82 }
83 else {
84 PortalUtil.sendError(e, request, response);
85
86 return null;
87 }
88 }
89 }
90
91 protected void updatePassword(
92 HttpServletRequest request, HttpServletResponse response)
93 throws Exception {
94
95 HttpSession session = request.getSession();
96
97 long userId = PortalUtil.getUserId(request);
98 String password1 = ParamUtil.getString(request, "password1");
99 String password2 = ParamUtil.getString(request, "password2");
100 boolean passwordReset = false;
101
102 UserServiceUtil.updatePassword(
103 userId, password1, password2, passwordReset);
104
105 session.setAttribute(WebKeys.USER_PASSWORD, password1);
106 }
107
108 }