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