diff --git a/portal-impl/src/com/liferay/portal/util/PortalImpl.java b/portal-impl/src/com/liferay/portal/util/PortalImpl.java index d40f1e26b5b5d4..f571e504a3e3df 100644 --- a/portal-impl/src/com/liferay/portal/util/PortalImpl.java +++ b/portal-impl/src/com/liferay/portal/util/PortalImpl.java @@ -1806,128 +1806,6 @@ public String getGroupFriendlyURL( group, privateLayoutSet, themeDisplay, false); } - protected String getGroupFriendlyURL( - Group group, boolean privateLayoutSet, ThemeDisplay themeDisplay, - boolean canonicalURL) - throws PortalException, SystemException { - - LayoutSet layoutSet = LayoutSetLocalServiceUtil.getLayoutSet( - group.getGroupId(), privateLayoutSet); - - String portalURL = StringPool.BLANK; - - if (canonicalURL || !themeDisplay.getServerName().equals(_LOCALHOST)) { - String virtualHostname = layoutSet.getVirtualHostname(); - - if (Validator.isNull(virtualHostname) && - Validator.isNotNull( - PropsValues.VIRTUAL_HOSTS_DEFAULT_SITE_NAME) && - !layoutSet.isPrivateLayout()) { - - try { - Group defaultGroup = GroupLocalServiceUtil.getGroup( - themeDisplay.getCompanyId(), - PropsValues.VIRTUAL_HOSTS_DEFAULT_SITE_NAME); - - if (layoutSet.getGroupId() == defaultGroup.getGroupId()) { - Company company = themeDisplay.getCompany(); - - virtualHostname = company.getVirtualHostname(); - } - } - catch (Exception e) { - _log.error(e, e); - } - } - - if (Validator.isNotNull(virtualHostname) && - (canonicalURL || - !virtualHostname.equalsIgnoreCase(_LOCALHOST))) { - - virtualHostname = getPortalURL( - virtualHostname, themeDisplay.getServerPort(), - themeDisplay.isSecure()); - - String portalDomain = HttpUtil.getDomain( - themeDisplay.getPortalURL()); - - if (canonicalURL || virtualHostname.contains(portalDomain)) { - String path = StringPool.BLANK; - - if (themeDisplay.isWidget()) { - path = PropsValues.WIDGET_SERVLET_MAPPING; - } - - if (themeDisplay.isI18n() && !canonicalURL) { - path = themeDisplay.getI18nPath(); - } - - return virtualHostname.concat(_pathContext).concat(path); - } - } - else { - Layout curLayout = themeDisplay.getLayout(); - - LayoutSet curLayoutSet = curLayout.getLayoutSet(); - - if (canonicalURL || (layoutSet.getLayoutSetId() != - curLayoutSet.getLayoutSetId()) && - (group.getClassPK() != themeDisplay.getUserId())) { - - if (group.isControlPanel()) { - virtualHostname = curLayoutSet.getVirtualHostname(); - } - - if (Validator.isNull(virtualHostname) || - virtualHostname.equalsIgnoreCase(_LOCALHOST)) { - - Company company = themeDisplay.getCompany(); - - virtualHostname = company.getVirtualHostname(); - } - - if (!virtualHostname.equalsIgnoreCase(_LOCALHOST)) { - portalURL = getPortalURL( - virtualHostname, themeDisplay.getServerPort(), - themeDisplay.isSecure()); - } - } - } - } - - String friendlyURL = null; - - if (privateLayoutSet) { - if (group.isUser()) { - friendlyURL = _PRIVATE_USER_SERVLET_MAPPING; - } - else { - friendlyURL = _PRIVATE_GROUP_SERVLET_MAPPING; - } - } - else { - friendlyURL = _PUBLIC_GROUP_SERVLET_MAPPING; - } - - StringBundler sb = new StringBundler(6); - - sb.append(portalURL); - sb.append(_pathContext); - - if (themeDisplay.isI18n() && !canonicalURL) { - sb.append(themeDisplay.getI18nPath()); - } - - if (themeDisplay.isWidget()) { - sb.append(PropsValues.WIDGET_SERVLET_MAPPING); - } - - sb.append(friendlyURL); - sb.append(group.getFriendlyURL()); - - return sb.toString(); - } - public String[] getGroupPermissions(HttpServletRequest request) { return request.getParameterValues("groupPermissions"); } @@ -5627,6 +5505,128 @@ protected long getDoAsUserId( return 0; } } + + protected String getGroupFriendlyURL( + Group group, boolean privateLayoutSet, ThemeDisplay themeDisplay, + boolean canonicalURL) + throws PortalException, SystemException { + + LayoutSet layoutSet = LayoutSetLocalServiceUtil.getLayoutSet( + group.getGroupId(), privateLayoutSet); + + String portalURL = StringPool.BLANK; + + if (canonicalURL || !themeDisplay.getServerName().equals(_LOCALHOST)) { + String virtualHostname = layoutSet.getVirtualHostname(); + + if (Validator.isNull(virtualHostname) && + Validator.isNotNull( + PropsValues.VIRTUAL_HOSTS_DEFAULT_SITE_NAME) && + !layoutSet.isPrivateLayout()) { + + try { + Group defaultGroup = GroupLocalServiceUtil.getGroup( + themeDisplay.getCompanyId(), + PropsValues.VIRTUAL_HOSTS_DEFAULT_SITE_NAME); + + if (layoutSet.getGroupId() == defaultGroup.getGroupId()) { + Company company = themeDisplay.getCompany(); + + virtualHostname = company.getVirtualHostname(); + } + } + catch (Exception e) { + _log.error(e, e); + } + } + + if (Validator.isNotNull(virtualHostname) && + (canonicalURL || + !virtualHostname.equalsIgnoreCase(_LOCALHOST))) { + + virtualHostname = getPortalURL( + virtualHostname, themeDisplay.getServerPort(), + themeDisplay.isSecure()); + + String portalDomain = HttpUtil.getDomain( + themeDisplay.getPortalURL()); + + if (canonicalURL || virtualHostname.contains(portalDomain)) { + String path = StringPool.BLANK; + + if (themeDisplay.isWidget()) { + path = PropsValues.WIDGET_SERVLET_MAPPING; + } + + if (themeDisplay.isI18n() && !canonicalURL) { + path = themeDisplay.getI18nPath(); + } + + return virtualHostname.concat(_pathContext).concat(path); + } + } + else { + Layout curLayout = themeDisplay.getLayout(); + + LayoutSet curLayoutSet = curLayout.getLayoutSet(); + + if (canonicalURL || (layoutSet.getLayoutSetId() != + curLayoutSet.getLayoutSetId()) && + (group.getClassPK() != themeDisplay.getUserId())) { + + if (group.isControlPanel()) { + virtualHostname = curLayoutSet.getVirtualHostname(); + } + + if (Validator.isNull(virtualHostname) || + virtualHostname.equalsIgnoreCase(_LOCALHOST)) { + + Company company = themeDisplay.getCompany(); + + virtualHostname = company.getVirtualHostname(); + } + + if (!virtualHostname.equalsIgnoreCase(_LOCALHOST)) { + portalURL = getPortalURL( + virtualHostname, themeDisplay.getServerPort(), + themeDisplay.isSecure()); + } + } + } + } + + String friendlyURL = null; + + if (privateLayoutSet) { + if (group.isUser()) { + friendlyURL = _PRIVATE_USER_SERVLET_MAPPING; + } + else { + friendlyURL = _PRIVATE_GROUP_SERVLET_MAPPING; + } + } + else { + friendlyURL = _PUBLIC_GROUP_SERVLET_MAPPING; + } + + StringBundler sb = new StringBundler(6); + + sb.append(portalURL); + sb.append(_pathContext); + + if (themeDisplay.isI18n() && !canonicalURL) { + sb.append(themeDisplay.getI18nPath()); + } + + if (themeDisplay.isWidget()) { + sb.append(PropsValues.WIDGET_SERVLET_MAPPING); + } + + sb.append(friendlyURL); + sb.append(group.getFriendlyURL()); + + return sb.toString(); + } protected boolean isAlwaysAllowDoAsUser(HttpServletRequest request) throws Exception {