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 boolean imageUploaded = ParamUtil.getBoolean(
062 actionRequest, "imageUploaded");
063
064 if (imageUploaded) {
065 saveTempImageFile(actionRequest);
066 }
067
068 sendRedirect(actionRequest, actionResponse);
069 }
070 }
071 catch (Exception e) {
072 if (e instanceof NoSuchUserException ||
073 e instanceof PrincipalException) {
074
075 SessionErrors.add(actionRequest, e.getClass());
076
077 setForward(actionRequest, "portlet.users_admin.error");
078 }
079 else if (e instanceof FileSizeException ||
080 e instanceof ImageTypeException ||
081 e instanceof NoSuchFileException ||
082 e instanceof UploadException ||
083 e instanceof UserPortraitSizeException ||
084 e instanceof UserPortraitTypeException) {
085
086 SessionErrors.add(actionRequest, e.getClass());
087 }
088 else {
089 throw e;
090 }
091 }
092 }
093
094 @Override
095 public ActionForward render(
096 ActionMapping actionMapping, ActionForm actionForm,
097 PortletConfig portletConfig, RenderRequest renderRequest,
098 RenderResponse renderResponse)
099 throws Exception {
100
101 return actionMapping.findForward(
102 getForward(
103 renderRequest, "portlet.users_admin.edit_user_portrait"));
104 }
105
106 @Override
107 protected String getTempImageFileName(PortletRequest portletRequest) {
108 return ParamUtil.getString(portletRequest, "p_u_i_d");
109 }
110
111 @Override
112 protected void saveTempImageFile(
113 PortletRequest portletRequest, byte[] bytes)
114 throws Exception {
115
116 long userId = ParamUtil.getLong(portletRequest, "p_u_i_d");
117
118 UserServiceUtil.updatePortrait(userId, bytes);
119 }
120
121 }