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