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