1
14
15 package com.liferay.portlet.enterpriseadmin.action;
16
17 import com.liferay.portal.AccountNameException;
18 import com.liferay.portal.AddressCityException;
19 import com.liferay.portal.AddressStreetException;
20 import com.liferay.portal.AddressZipException;
21 import com.liferay.portal.CompanyMxException;
22 import com.liferay.portal.CompanyVirtualHostException;
23 import com.liferay.portal.CompanyWebIdException;
24 import com.liferay.portal.EmailAddressException;
25 import com.liferay.portal.NoSuchCountryException;
26 import com.liferay.portal.NoSuchListTypeException;
27 import com.liferay.portal.NoSuchRegionException;
28 import com.liferay.portal.PhoneNumberException;
29 import com.liferay.portal.WebsiteURLException;
30 import com.liferay.portal.kernel.servlet.SessionErrors;
31 import com.liferay.portal.kernel.util.Constants;
32 import com.liferay.portal.kernel.util.ParamUtil;
33 import com.liferay.portal.kernel.util.PropertiesParamUtil;
34 import com.liferay.portal.kernel.util.PropsKeys;
35 import com.liferay.portal.kernel.util.UnicodeProperties;
36 import com.liferay.portal.model.Address;
37 import com.liferay.portal.model.Company;
38 import com.liferay.portal.model.EmailAddress;
39 import com.liferay.portal.model.Phone;
40 import com.liferay.portal.model.Website;
41 import com.liferay.portal.security.auth.PrincipalException;
42 import com.liferay.portal.service.CompanyServiceUtil;
43 import com.liferay.portal.struts.PortletAction;
44 import com.liferay.portal.util.PortalUtil;
45 import com.liferay.portlet.enterpriseadmin.util.EnterpriseAdminUtil;
46
47 import java.util.List;
48
49 import javax.portlet.ActionRequest;
50 import javax.portlet.ActionResponse;
51 import javax.portlet.PortletConfig;
52
53 import org.apache.struts.action.ActionForm;
54 import org.apache.struts.action.ActionMapping;
55
56
62 public class EditCompanyAction extends PortletAction {
63
64 public void processAction(
65 ActionMapping mapping, ActionForm form, PortletConfig portletConfig,
66 ActionRequest actionRequest, ActionResponse actionResponse)
67 throws Exception {
68
69 String cmd = ParamUtil.getString(actionRequest, Constants.CMD);
70
71 try {
72 if (cmd.equals(Constants.ADD) || cmd.equals(Constants.UPDATE)) {
73 updateCompany(actionRequest);
74 updateDisplay(actionRequest);
75 }
76
77 sendRedirect(actionRequest, actionResponse);
78 }
79 catch (Exception e) {
80 if (e instanceof PrincipalException) {
81 SessionErrors.add(actionRequest, e.getClass().getName());
82
83 setForward(actionRequest, "portlet.enterprise_admin.error");
84 }
85 else if (e instanceof AddressCityException ||
86 e instanceof AccountNameException ||
87 e instanceof AddressStreetException ||
88 e instanceof AddressZipException ||
89 e instanceof CompanyMxException ||
90 e instanceof CompanyVirtualHostException ||
91 e instanceof CompanyWebIdException ||
92 e instanceof EmailAddressException ||
93 e instanceof NoSuchCountryException ||
94 e instanceof NoSuchListTypeException ||
95 e instanceof NoSuchRegionException ||
96 e instanceof PhoneNumberException ||
97 e instanceof WebsiteURLException) {
98
99 if (e instanceof NoSuchListTypeException) {
100 NoSuchListTypeException nslte = (NoSuchListTypeException)e;
101
102 SessionErrors.add(
103 actionRequest,
104 e.getClass().getName() + nslte.getType());
105 }
106 else {
107 SessionErrors.add(actionRequest, e.getClass().getName(), e);
108 }
109
110 setForward(actionRequest, "portlet.enterprise_admin.view");
111 }
112 else {
113 throw e;
114 }
115 }
116 }
117
118 protected void updateCompany(ActionRequest actionRequest) throws Exception {
119 long companyId = PortalUtil.getCompanyId(actionRequest);
120
121 String virtualHost = ParamUtil.getString(actionRequest, "virtualHost");
122 String mx = ParamUtil.getString(actionRequest, "mx");
123 String homeURL = ParamUtil.getString(actionRequest, "homeURL");
124 String name = ParamUtil.getString(actionRequest, "name");
125 String legalName = ParamUtil.getString(actionRequest, "legalName");
126 String legalId = ParamUtil.getString(actionRequest, "legalId");
127 String legalType = ParamUtil.getString(actionRequest, "legalType");
128 String sicCode = ParamUtil.getString(actionRequest, "sicCode");
129 String tickerSymbol = ParamUtil.getString(
130 actionRequest, "tickerSymbol");
131 String industry = ParamUtil.getString(actionRequest, "industry");
132 String type = ParamUtil.getString(actionRequest, "type");
133 String size = ParamUtil.getString(actionRequest, "size");
134 String languageId = ParamUtil.getString(actionRequest, "languageId");
135 String timeZoneId = ParamUtil.getString(actionRequest, "timeZoneId");
136 List<Address> addresses = EnterpriseAdminUtil.getAddresses(
137 actionRequest);
138 List<EmailAddress> emailAddresses =
139 EnterpriseAdminUtil.getEmailAddresses(actionRequest);
140 List<Phone> phones = EnterpriseAdminUtil.getPhones(actionRequest);
141 List<Website> websites = EnterpriseAdminUtil.getWebsites(actionRequest);
142 UnicodeProperties properties = PropertiesParamUtil.getProperties(
143 actionRequest, "settings(");
144
145 CompanyServiceUtil.updateCompany(
146 companyId, virtualHost, mx, homeURL, name, legalName, legalId,
147 legalType, sicCode, tickerSymbol, industry, type, size, languageId,
148 timeZoneId, addresses, emailAddresses, phones, websites,
149 properties);
150 }
151
152 protected void updateDisplay(ActionRequest actionRequest) throws Exception {
153 Company company = PortalUtil.getCompany(actionRequest);
154
155 String languageId = ParamUtil.getString(actionRequest, "languageId");
156 String timeZoneId = ParamUtil.getString(actionRequest, "timeZoneId");
157
158 CompanyServiceUtil.updateDisplay(
159 company.getCompanyId(), languageId, timeZoneId);
160
161 boolean communityLogo = ParamUtil.getBoolean(
162 actionRequest,
163 "settings(" + PropsKeys.COMPANY_SECURITY_COMMUNITY_LOGO + ")");
164
165 CompanyServiceUtil.updateSecurity(
166 company.getCompanyId(), company.getAuthType(),
167 company.isAutoLogin(), company.isSendPassword(),
168 company.isStrangers(), company.isStrangersWithMx(),
169 company.isStrangersVerify(), communityLogo);
170
171 boolean deleteLogo = ParamUtil.getBoolean(actionRequest, "deleteLogo");
172
173 if (deleteLogo) {
174 CompanyServiceUtil.deleteLogo(company.getCompanyId());
175 }
176 }
177
178 }