001
014
015 package com.liferay.portlet.usersadmin.action;
016
017 import com.liferay.portal.ImageTypeException;
018 import com.liferay.portal.NoSuchUserException;
019 import com.liferay.portal.UserPortraitSizeException;
020 import com.liferay.portal.UserPortraitTypeException;
021 import com.liferay.portal.kernel.servlet.SessionErrors;
022 import com.liferay.portal.kernel.upload.UploadException;
023 import com.liferay.portal.kernel.util.Constants;
024 import com.liferay.portal.kernel.util.ParamUtil;
025 import com.liferay.portal.security.auth.PrincipalException;
026 import com.liferay.portal.service.UserServiceUtil;
027 import com.liferay.portlet.documentlibrary.FileSizeException;
028 import com.liferay.portlet.documentlibrary.NoSuchFileException;
029 import com.liferay.portlet.portalsettings.action.EditCompanyLogoAction;
030
031 import javax.portlet.ActionRequest;
032 import javax.portlet.ActionResponse;
033 import javax.portlet.PortletConfig;
034 import javax.portlet.PortletRequest;
035 import javax.portlet.RenderRequest;
036 import javax.portlet.RenderResponse;
037
038 import org.apache.struts.action.ActionForm;
039 import org.apache.struts.action.ActionForward;
040 import org.apache.struts.action.ActionMapping;
041
042
045 public class EditUserPortraitAction extends EditCompanyLogoAction {
046
047 @Override
048 public void processAction(
049 ActionMapping actionMapping, ActionForm actionForm,
050 PortletConfig portletConfig, ActionRequest actionRequest,
051 ActionResponse actionResponse)
052 throws Exception {
053
054 try {
055 String cmd = ParamUtil.getString(actionRequest, Constants.CMD);
056
057 if (cmd.equals(Constants.ADD_TEMP)) {
058 addTempImageFile(actionRequest);
059 }
060 else {
061 saveTempImageFile(actionRequest);
062
063 sendRedirect(actionRequest, actionResponse);
064 }
065 }
066 catch (Exception e) {
067 if (e instanceof NoSuchUserException ||
068 e instanceof PrincipalException) {
069
070 SessionErrors.add(actionRequest, e.getClass());
071
072 setForward(actionRequest, "portlet.users_admin.error");
073 }
074 else if (e instanceof FileSizeException ||
075 e instanceof ImageTypeException ||
076 e instanceof NoSuchFileException ||
077 e instanceof UploadException ||
078 e instanceof UserPortraitSizeException ||
079 e instanceof UserPortraitTypeException) {
080
081 SessionErrors.add(actionRequest, e.getClass());
082 }
083 else {
084 throw e;
085 }
086 }
087 }
088
089 @Override
090 public ActionForward render(
091 ActionMapping actionMapping, ActionForm actionForm,
092 PortletConfig portletConfig, RenderRequest renderRequest,
093 RenderResponse renderResponse)
094 throws Exception {
095
096 return actionMapping.findForward(
097 getForward(
098 renderRequest, "portlet.users_admin.edit_user_portrait"));
099 }
100
101 @Override
102 protected String getTempImageFileName(PortletRequest portletRequest) {
103 return ParamUtil.getString(portletRequest, "p_u_i_d");
104 }
105
106 @Override
107 protected void saveTempImageFile(
108 PortletRequest portletRequest, byte[] bytes)
109 throws Exception {
110
111 long userId = ParamUtil.getLong(portletRequest, "p_u_i_d");
112
113 UserServiceUtil.updatePortrait(userId, bytes);
114 }
115
116 }