1
22
23 package com.liferay.portlet.enterpriseadmin.action;
24
25 import com.liferay.portal.security.auth.PrincipalException;
26 import com.liferay.portal.service.CompanyServiceUtil;
27 import com.liferay.portal.struts.PortletAction;
28 import com.liferay.portal.util.PortalUtil;
29 import com.liferay.util.FileUtil;
30 import com.liferay.util.servlet.SessionErrors;
31 import com.liferay.util.servlet.UploadException;
32 import com.liferay.util.servlet.UploadPortletRequest;
33
34 import java.io.File;
35
36 import javax.portlet.ActionRequest;
37 import javax.portlet.ActionResponse;
38 import javax.portlet.PortletConfig;
39 import javax.portlet.RenderRequest;
40 import javax.portlet.RenderResponse;
41
42 import org.apache.struts.action.ActionForm;
43 import org.apache.struts.action.ActionForward;
44 import org.apache.struts.action.ActionMapping;
45
46
52 public class EditCompanyLogoAction extends PortletAction {
53
54 public void processAction(
55 ActionMapping mapping, ActionForm form, PortletConfig config,
56 ActionRequest req, ActionResponse res)
57 throws Exception {
58
59 try {
60 updateLogo(req);
61
62 sendRedirect(req, res);
63 }
64 catch (Exception e) {
65 if (e instanceof PrincipalException) {
66 SessionErrors.add(req, e.getClass().getName());
67
68 setForward(req, "portlet.enterprise_admin.error");
69 }
70 else if (e instanceof UploadException) {
71 SessionErrors.add(req, e.getClass().getName());
72 }
73 else {
74 throw e;
75 }
76 }
77 }
78
79 public ActionForward render(
80 ActionMapping mapping, ActionForm form, PortletConfig config,
81 RenderRequest req, RenderResponse res)
82 throws Exception {
83
84 return mapping.findForward(
85 getForward(req, "portlet.enterprise_admin.edit_company_logo"));
86 }
87
88 protected void updateLogo(ActionRequest req) throws Exception {
89 UploadPortletRequest uploadReq =
90 PortalUtil.getUploadPortletRequest(req);
91
92 long companyId = PortalUtil.getCompanyId(req);
93
94 File file = uploadReq.getFile("fileName");
95 byte[] bytes = FileUtil.getBytes(file);
96
97 if ((bytes == null) || (bytes.length == 0)) {
98 throw new UploadException();
99 }
100
101 CompanyServiceUtil.updateLogo(companyId, file);
102 }
103
104 }