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