001
014
015 package com.liferay.portal.action;
016
017 import com.liferay.portal.DuplicateUserEmailAddressException;
018 import com.liferay.portal.NoSuchUserException;
019 import com.liferay.portal.ReservedUserEmailAddressException;
020 import com.liferay.portal.UserEmailAddressException;
021 import com.liferay.portal.kernel.servlet.SessionErrors;
022 import com.liferay.portal.kernel.util.Constants;
023 import com.liferay.portal.kernel.util.ParamUtil;
024 import com.liferay.portal.kernel.util.Validator;
025 import com.liferay.portal.security.auth.PrincipalException;
026 import com.liferay.portal.service.UserServiceUtil;
027 import com.liferay.portal.struts.ActionConstants;
028 import com.liferay.portal.util.PortalUtil;
029 import com.liferay.portlet.admin.util.AdminUtil;
030
031 import javax.servlet.http.HttpServletRequest;
032 import javax.servlet.http.HttpServletResponse;
033
034 import org.apache.struts.action.Action;
035 import org.apache.struts.action.ActionForm;
036 import org.apache.struts.action.ActionForward;
037 import org.apache.struts.action.ActionMapping;
038
039
044 public class UpdateEmailAddressAction extends Action {
045
046 @Override
047 public ActionForward execute(
048 ActionMapping mapping, ActionForm form, HttpServletRequest request,
049 HttpServletResponse response)
050 throws Exception {
051
052 String cmd = ParamUtil.getString(request, Constants.CMD);
053
054 if (Validator.isNull(cmd)) {
055 return mapping.findForward("portal.update_email_address");
056 }
057
058 try {
059 updateEmailAddress(request);
060
061 return mapping.findForward(ActionConstants.COMMON_REFERER);
062 }
063 catch (Exception e) {
064 if (e instanceof DuplicateUserEmailAddressException ||
065 e instanceof ReservedUserEmailAddressException ||
066 e instanceof UserEmailAddressException) {
067
068 SessionErrors.add(request, e.getClass().getName());
069
070 return mapping.findForward("portal.update_email_address");
071 }
072 else if (e instanceof NoSuchUserException ||
073 e instanceof PrincipalException) {
074
075 SessionErrors.add(request, e.getClass().getName());
076
077 return mapping.findForward("portal.error");
078 }
079 else {
080 PortalUtil.sendError(e, request, response);
081
082 return null;
083 }
084 }
085 }
086
087 protected void updateEmailAddress(HttpServletRequest request)
088 throws Exception {
089
090 long userId = PortalUtil.getUserId(request);
091 String password = AdminUtil.getUpdateUserPassword(request, userId);
092 String emailAddress1 = ParamUtil.getString(request, "emailAddress1");
093 String emailAddress2 = ParamUtil.getString(request, "emailAddress2");
094
095 UserServiceUtil.updateEmailAddress(
096 userId, password, emailAddress1, emailAddress2);
097 }
098
099 }