001
014
015 package com.liferay.portal.model.impl;
016
017 import com.liferay.portal.kernel.bean.AutoEscape;
018 import com.liferay.portal.kernel.exception.PortalException;
019 import com.liferay.portal.kernel.util.Base64;
020 import com.liferay.portal.kernel.util.CharPool;
021 import com.liferay.portal.kernel.util.Http;
022 import com.liferay.portal.kernel.util.PropsKeys;
023 import com.liferay.portal.kernel.util.StringPool;
024 import com.liferay.portal.kernel.util.StringUtil;
025 import com.liferay.portal.kernel.util.Validator;
026 import com.liferay.portal.model.Account;
027 import com.liferay.portal.model.CacheField;
028 import com.liferay.portal.model.Company;
029 import com.liferay.portal.model.CompanyConstants;
030 import com.liferay.portal.model.Group;
031 import com.liferay.portal.model.LayoutSet;
032 import com.liferay.portal.model.User;
033 import com.liferay.portal.model.VirtualHost;
034 import com.liferay.portal.service.AccountLocalServiceUtil;
035 import com.liferay.portal.service.GroupLocalServiceUtil;
036 import com.liferay.portal.service.LayoutSetLocalServiceUtil;
037 import com.liferay.portal.service.UserLocalServiceUtil;
038 import com.liferay.portal.service.VirtualHostLocalServiceUtil;
039 import com.liferay.portal.util.PortalUtil;
040 import com.liferay.portal.util.PrefsPropsUtil;
041 import com.liferay.portal.util.PropsValues;
042
043 import java.security.Key;
044
045 import java.util.Locale;
046 import java.util.TimeZone;
047
048
051 public class CompanyImpl extends CompanyBaseImpl {
052
053 @Override
054 public int compareTo(Company company) {
055 String webId1 = getWebId();
056 String webId2 = company.getWebId();
057
058 if (webId1.equals(PropsValues.COMPANY_DEFAULT_WEB_ID)) {
059 return -1;
060 }
061 else if (webId2.equals(PropsValues.COMPANY_DEFAULT_WEB_ID)) {
062 return 1;
063 }
064 else {
065 return webId1.compareTo(webId2);
066 }
067 }
068
069 @Override
070 public Account getAccount() throws PortalException {
071 return AccountLocalServiceUtil.getAccount(
072 getCompanyId(), getAccountId());
073 }
074
075 @Override
076 public String getAdminName() {
077 return "Administrator";
078 }
079
080 @Override
081 public String getAuthType() {
082 return PrefsPropsUtil.getString(
083 getCompanyId(), PropsKeys.COMPANY_SECURITY_AUTH_TYPE,
084 PropsValues.COMPANY_SECURITY_AUTH_TYPE);
085 }
086
087 @Override
088 public User getDefaultUser() throws PortalException {
089 return UserLocalServiceUtil.getDefaultUser(getCompanyId());
090 }
091
092 @Override
093 public String getDefaultWebId() {
094 return PropsValues.COMPANY_DEFAULT_WEB_ID;
095 }
096
097 @Override
098 public String getEmailAddress() {
099
100
101
102 return "admin@" + getMx();
103 }
104
105 @Override
106 public Group getGroup() throws PortalException {
107 if (getCompanyId() > CompanyConstants.SYSTEM) {
108 return GroupLocalServiceUtil.getCompanyGroup(getCompanyId());
109 }
110
111 return new GroupImpl();
112 }
113
114 @Override
115 public long getGroupId() throws PortalException {
116 Group group = getGroup();
117
118 return group.getGroupId();
119 }
120
121 @Override
122 public Key getKeyObj() {
123 if (_keyObj == null) {
124 String key = getKey();
125
126 if (Validator.isNotNull(key)) {
127 _keyObj = (Key)Base64.stringToObjectSilent(key);
128 }
129 }
130
131 return _keyObj;
132 }
133
134 @Override
135 public Locale getLocale() throws PortalException {
136 return getDefaultUser().getLocale();
137 }
138
139 @AutoEscape
140 @Override
141 public String getName() throws PortalException {
142 return getAccount().getName();
143 }
144
145 @Override
146 public String getPortalURL(long groupId) throws PortalException {
147 String portalURL = PortalUtil.getPortalURL(
148 getVirtualHostname(), Http.HTTP_PORT, false);
149
150 if (groupId <= 0) {
151 return portalURL;
152 }
153
154 Group group = GroupLocalServiceUtil.getGroup(groupId);
155
156 if (group.hasPublicLayouts()) {
157 LayoutSet layoutSet = LayoutSetLocalServiceUtil.getLayoutSet(
158 groupId, false);
159
160 if (Validator.isNotNull(layoutSet.getVirtualHostname())) {
161 portalURL = PortalUtil.getPortalURL(
162 layoutSet.getVirtualHostname(), Http.HTTP_PORT, false);
163 }
164 }
165 else if (group.hasPrivateLayouts()) {
166 LayoutSet layoutSet = LayoutSetLocalServiceUtil.getLayoutSet(
167 groupId, true);
168
169 if (Validator.isNotNull(layoutSet.getVirtualHostname())) {
170 portalURL = PortalUtil.getPortalURL(
171 layoutSet.getVirtualHostname(), Http.HTTP_PORT, false);
172 }
173 }
174
175 return portalURL;
176 }
177
178 @Override
179 public String getShortName() throws PortalException {
180 return getName();
181 }
182
183 @Override
184 public TimeZone getTimeZone() throws PortalException {
185 return getDefaultUser().getTimeZone();
186 }
187
188 @Override
189 public String getVirtualHostname() {
190 if (_virtualHostname != null) {
191 return _virtualHostname;
192 }
193
194 VirtualHost virtualHost = null;
195
196 try {
197 virtualHost = VirtualHostLocalServiceUtil.fetchVirtualHost(
198 getCompanyId(), 0);
199 }
200 catch (Exception e) {
201 }
202
203 if (virtualHost == null) {
204 return StringPool.BLANK;
205 }
206
207 _virtualHostname = virtualHost.getHostname();
208
209 return _virtualHostname;
210 }
211
212 @Override
213 public boolean hasCompanyMx(String emailAddress) {
214 emailAddress = StringUtil.toLowerCase(emailAddress.trim());
215
216 int pos = emailAddress.indexOf(CharPool.AT);
217
218 if (pos == -1) {
219 return false;
220 }
221
222 String mx = emailAddress.substring(pos + 1);
223
224 if (mx.equals(getMx())) {
225 return true;
226 }
227
228 String[] mailHostNames = PrefsPropsUtil.getStringArray(
229 getCompanyId(), PropsKeys.ADMIN_MAIL_HOST_NAMES,
230 StringPool.NEW_LINE, PropsValues.ADMIN_MAIL_HOST_NAMES);
231
232 for (int i = 0; i < mailHostNames.length; i++) {
233 if (StringUtil.equalsIgnoreCase(mx, mailHostNames[i])) {
234 return true;
235 }
236 }
237
238 return false;
239 }
240
241 @Override
242 public boolean isAutoLogin() {
243 return PrefsPropsUtil.getBoolean(
244 getCompanyId(), PropsKeys.COMPANY_SECURITY_AUTO_LOGIN,
245 PropsValues.COMPANY_SECURITY_AUTO_LOGIN);
246 }
247
248 @Override
249 public boolean isSendPassword() {
250 return PrefsPropsUtil.getBoolean(
251 getCompanyId(), PropsKeys.COMPANY_SECURITY_SEND_PASSWORD,
252 PropsValues.COMPANY_SECURITY_SEND_PASSWORD);
253 }
254
255 @Override
256 public boolean isSendPasswordResetLink() {
257 return PrefsPropsUtil.getBoolean(
258 getCompanyId(), PropsKeys.COMPANY_SECURITY_SEND_PASSWORD_RESET_LINK,
259 PropsValues.COMPANY_SECURITY_SEND_PASSWORD_RESET_LINK);
260 }
261
262 @Override
263 public boolean isSiteLogo() {
264 return PrefsPropsUtil.getBoolean(
265 getCompanyId(), PropsKeys.COMPANY_SECURITY_SITE_LOGO,
266 PropsValues.COMPANY_SECURITY_SITE_LOGO);
267 }
268
269 @Override
270 public boolean isStrangers() {
271 return PrefsPropsUtil.getBoolean(
272 getCompanyId(), PropsKeys.COMPANY_SECURITY_STRANGERS,
273 PropsValues.COMPANY_SECURITY_STRANGERS);
274 }
275
276 @Override
277 public boolean isStrangersVerify() {
278 return PrefsPropsUtil.getBoolean(
279 getCompanyId(), PropsKeys.COMPANY_SECURITY_STRANGERS_VERIFY,
280 PropsValues.COMPANY_SECURITY_STRANGERS_VERIFY);
281 }
282
283 @Override
284 public boolean isStrangersWithMx() {
285 return PrefsPropsUtil.getBoolean(
286 getCompanyId(), PropsKeys.COMPANY_SECURITY_STRANGERS_WITH_MX,
287 PropsValues.COMPANY_SECURITY_STRANGERS_WITH_MX);
288 }
289
290 @Override
291 public void setKey(String key) {
292 _keyObj = null;
293
294 super.setKey(key);
295 }
296
297 @Override
298 public void setKeyObj(Key keyObj) {
299 _keyObj = keyObj;
300 }
301
302 @Override
303 public void setVirtualHostname(String virtualHostname) {
304 _virtualHostname = virtualHostname;
305 }
306
307 @CacheField
308 private Key _keyObj;
309
310 @CacheField
311 private String _virtualHostname;
312
313 }