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