List of usage examples for com.liferay.portal.kernel.model Group getPublicLayoutSet
public LayoutSet getPublicLayoutSet();
From source file:com.liferay.exportimport.content.processor.base.BaseTextExportImportContentProcessor.java
License:Open Source License
protected String replaceExportHostname(long groupId, String url, StringBundler urlSB) throws PortalException { if (!HttpUtil.hasProtocol(url)) { return url; }/* www . ja va 2 s . c om*/ boolean secure = HttpUtil.isSecure(url); int serverPort = PortalUtil.getPortalServerPort(secure); if (serverPort == -1) { return url; } Group group = GroupLocalServiceUtil.getGroup(groupId); LayoutSet publicLayoutSet = group.getPublicLayoutSet(); String publicLayoutSetVirtualHostname = publicLayoutSet.getVirtualHostname(); String portalUrl = StringPool.BLANK; if (Validator.isNotNull(publicLayoutSetVirtualHostname)) { portalUrl = PortalUtil.getPortalURL(publicLayoutSetVirtualHostname, serverPort, secure); if (url.startsWith(portalUrl)) { if (secure) { urlSB.append(DATA_HANDLER_PUBLIC_LAYOUT_SET_SECURE_URL); } else { urlSB.append(DATA_HANDLER_PUBLIC_LAYOUT_SET_URL); } return url.substring(portalUrl.length()); } } LayoutSet privateLayoutSet = group.getPrivateLayoutSet(); String privateLayoutSetVirtualHostname = privateLayoutSet.getVirtualHostname(); if (Validator.isNotNull(privateLayoutSetVirtualHostname)) { portalUrl = PortalUtil.getPortalURL(privateLayoutSetVirtualHostname, serverPort, secure); if (url.startsWith(portalUrl)) { if (secure) { urlSB.append(DATA_HANDLER_PRIVATE_LAYOUT_SET_SECURE_URL); } else { urlSB.append(DATA_HANDLER_PRIVATE_LAYOUT_SET_URL); } return url.substring(portalUrl.length()); } } Company company = CompanyLocalServiceUtil.getCompany(group.getCompanyId()); String companyVirtualHostname = company.getVirtualHostname(); if (Validator.isNotNull(companyVirtualHostname)) { portalUrl = PortalUtil.getPortalURL(companyVirtualHostname, serverPort, secure); if (url.startsWith(portalUrl)) { if (secure) { urlSB.append(DATA_HANDLER_COMPANY_SECURE_URL); } else { urlSB.append(DATA_HANDLER_COMPANY_URL); } return url.substring(portalUrl.length()); } } portalUrl = PortalUtil.getPortalURL("localhost", serverPort, secure); if (url.startsWith(portalUrl)) { return url.substring(portalUrl.length()); } return url; }
From source file:com.liferay.exportimport.content.processor.base.BaseTextExportImportContentProcessor.java
License:Open Source License
protected String replaceExportLayoutReferences(PortletDataContext portletDataContext, StagedModel stagedModel, String content) throws Exception { Group group = GroupLocalServiceUtil.getGroup(portletDataContext.getScopeGroupId()); StringBuilder sb = new StringBuilder(content); String[] patterns = { "href=", "[[" }; int beginPos = -1; int endPos = content.length(); int offset = 0; while (true) { if (beginPos > -1) { endPos = beginPos - 1;/*from www . j a va 2 s .c o m*/ } beginPos = StringUtil.lastIndexOfAny(content, patterns, endPos); if (beginPos == -1) { break; } if (content.startsWith("href=", beginPos)) { offset = 5; char c = content.charAt(beginPos + offset); if ((c == CharPool.APOSTROPHE) || (c == CharPool.QUOTE)) { offset++; } } else if (content.charAt(beginPos) == CharPool.OPEN_BRACKET) { offset = 2; } endPos = StringUtil.indexOfAny(content, LAYOUT_REFERENCE_STOP_CHARS, beginPos + offset, endPos); if (endPos == -1) { continue; } String url = content.substring(beginPos + offset, endPos); if (url.endsWith(StringPool.SLASH)) { url = url.substring(0, url.length() - 1); } StringBundler urlSB = new StringBundler(6); try { url = replaceExportHostname(portletDataContext.getScopeGroupId(), url, urlSB); if (!url.startsWith(StringPool.SLASH)) { continue; } String pathContext = PortalUtil.getPathContext(); if (pathContext.length() > 1) { if (!url.startsWith(pathContext)) { continue; } urlSB.append(DATA_HANDLER_PATH_CONTEXT); url = url.substring(pathContext.length()); } if (!url.startsWith(StringPool.SLASH)) { continue; } int pos = url.indexOf(StringPool.SLASH, 1); String localePath = StringPool.BLANK; Locale locale = null; if (pos != -1) { localePath = url.substring(0, pos); locale = LocaleUtil.fromLanguageId(localePath.substring(1), true, false); } if (locale != null) { String urlWithoutLocale = url.substring(localePath.length()); if (urlWithoutLocale.startsWith(PRIVATE_GROUP_SERVLET_MAPPING) || urlWithoutLocale.startsWith(PRIVATE_USER_SERVLET_MAPPING) || urlWithoutLocale.startsWith(PUBLIC_GROUP_SERVLET_MAPPING)) { urlSB.append(localePath); url = urlWithoutLocale; } } boolean privateLayout = false; if (url.startsWith(PRIVATE_GROUP_SERVLET_MAPPING)) { urlSB.append(DATA_HANDLER_PRIVATE_GROUP_SERVLET_MAPPING); url = url.substring(PRIVATE_GROUP_SERVLET_MAPPING.length() - 1); privateLayout = true; } else if (url.startsWith(PRIVATE_USER_SERVLET_MAPPING)) { urlSB.append(DATA_HANDLER_PRIVATE_USER_SERVLET_MAPPING); url = url.substring(PRIVATE_USER_SERVLET_MAPPING.length() - 1); privateLayout = true; } else if (url.startsWith(PUBLIC_GROUP_SERVLET_MAPPING)) { urlSB.append(DATA_HANDLER_PUBLIC_SERVLET_MAPPING); url = url.substring(PUBLIC_GROUP_SERVLET_MAPPING.length() - 1); } else { String urlSBString = urlSB.toString(); LayoutSet layoutSet = null; if (urlSBString.contains(DATA_HANDLER_PUBLIC_LAYOUT_SET_SECURE_URL) || urlSBString.contains(DATA_HANDLER_PUBLIC_LAYOUT_SET_URL)) { layoutSet = group.getPublicLayoutSet(); } else if (urlSBString.contains(DATA_HANDLER_PRIVATE_LAYOUT_SET_SECURE_URL) || urlSBString.contains(DATA_HANDLER_PRIVATE_LAYOUT_SET_URL)) { layoutSet = group.getPrivateLayoutSet(); } if (layoutSet == null) { continue; } privateLayout = layoutSet.isPrivateLayout(); LayoutFriendlyURL layoutFriendlyUrl = LayoutFriendlyURLLocalServiceUtil .fetchFirstLayoutFriendlyURL(group.getGroupId(), privateLayout, url); if (layoutFriendlyUrl == null) { continue; } if (privateLayout) { if (group.isUser()) { urlSB.append(DATA_HANDLER_PRIVATE_USER_SERVLET_MAPPING); } else { urlSB.append(DATA_HANDLER_PRIVATE_GROUP_SERVLET_MAPPING); } } else { urlSB.append(DATA_HANDLER_PUBLIC_SERVLET_MAPPING); } urlSB.append(DATA_HANDLER_GROUP_FRIENDLY_URL); continue; } long groupId = group.getGroupId(); Layout layout = LayoutLocalServiceUtil.fetchLayoutByFriendlyURL(groupId, privateLayout, url); if (layout != null) { Element entityElement = portletDataContext.getExportDataElement(stagedModel); portletDataContext.addReferenceElement(stagedModel, entityElement, layout, PortletDataContext.REFERENCE_TYPE_DEPENDENCY, true); continue; } pos = url.indexOf(StringPool.SLASH, 1); String groupFriendlyURL = url; if (pos != -1) { groupFriendlyURL = url.substring(0, pos); } Group urlGroup = GroupLocalServiceUtil.fetchFriendlyURLGroup(group.getCompanyId(), groupFriendlyURL); if (urlGroup == null) { throw new NoSuchLayoutException(); } urlSB.append(DATA_HANDLER_GROUP_FRIENDLY_URL); // Append the UUID. This information will be used during the // import process when looking up the proper group for the link. urlSB.append(StringPool.AT); if (urlGroup.isStagedRemotely()) { String remoteGroupUuid = urlGroup.getTypeSettingsProperty("remoteGroupUUID"); if (Validator.isNotNull(remoteGroupUuid)) { urlSB.append(remoteGroupUuid); } } else if (urlGroup.isStaged()) { Group liveGroup = urlGroup.getLiveGroup(); urlSB.append(liveGroup.getUuid()); } else if (group.getGroupId() == urlGroup.getGroupId()) { urlSB.append(urlGroup.getFriendlyURL()); } else { urlSB.append(urlGroup.getUuid()); } urlSB.append(StringPool.AT); String siteAdminURL = GroupConstants.CONTROL_PANEL_FRIENDLY_URL + PropsValues.CONTROL_PANEL_LAYOUT_FRIENDLY_URL; if (url.endsWith(siteAdminURL)) { urlSB.append(DATA_HANDLER_SITE_ADMIN_URL); url = StringPool.BLANK; continue; } if (pos == -1) { url = StringPool.BLANK; continue; } url = url.substring(pos); layout = LayoutLocalServiceUtil.getFriendlyURLLayout(urlGroup.getGroupId(), privateLayout, url); Element entityElement = portletDataContext.getExportDataElement(stagedModel); portletDataContext.addReferenceElement(stagedModel, entityElement, layout, PortletDataContext.REFERENCE_TYPE_DEPENDENCY, true); } catch (Exception e) { if (e instanceof NoSuchLayoutException && !isValidateLayoutReferences()) { continue; } if (_log.isDebugEnabled()) { _log.debug(e, e); } else if (_log.isWarnEnabled()) { StringBundler exceptionSB = new StringBundler(6); exceptionSB.append("Unable to process layout URL "); exceptionSB.append(url); exceptionSB.append(" for staged model "); exceptionSB.append(stagedModel.getModelClassName()); exceptionSB.append(" with primary key "); exceptionSB.append(stagedModel.getPrimaryKeyObj()); _log.warn(exceptionSB.toString()); } } finally { if (urlSB.length() > 0) { urlSB.append(url); url = urlSB.toString(); } sb.replace(beginPos + offset, endPos, url); } } return sb.toString(); }
From source file:com.liferay.exportimport.content.processor.base.BaseTextExportImportContentProcessor.java
License:Open Source License
protected String replaceImportLayoutReferences(PortletDataContext portletDataContext, String content) throws Exception { String companyPortalURL = StringPool.BLANK; String privateLayoutSetPortalURL = StringPool.BLANK; String publicLayoutSetPortalURL = StringPool.BLANK; Group group = GroupLocalServiceUtil.getGroup(portletDataContext.getScopeGroupId()); Company company = CompanyLocalServiceUtil.getCompany(group.getCompanyId()); LayoutSet privateLayoutSet = group.getPrivateLayoutSet(); LayoutSet publicLayoutSet = group.getPublicLayoutSet(); int serverPort = PortalUtil.getPortalServerPort(false); if (serverPort != -1) { if (Validator.isNotNull(company.getVirtualHostname())) { companyPortalURL = PortalUtil.getPortalURL(company.getVirtualHostname(), serverPort, false); }/*ww w. j a va 2 s. c o m*/ if (Validator.isNotNull(privateLayoutSet.getVirtualHostname())) { privateLayoutSetPortalURL = PortalUtil.getPortalURL(privateLayoutSet.getVirtualHostname(), serverPort, false); } if (Validator.isNotNull(publicLayoutSet.getVirtualHostname())) { publicLayoutSetPortalURL = PortalUtil.getPortalURL(publicLayoutSet.getVirtualHostname(), serverPort, false); } } int secureSecurePort = PortalUtil.getPortalServerPort(true); String companySecurePortalURL = StringPool.BLANK; String privateLayoutSetSecurePortalURL = StringPool.BLANK; String publicLayoutSetSecurePortalURL = StringPool.BLANK; if (secureSecurePort != -1) { if (Validator.isNotNull(company.getVirtualHostname())) { companySecurePortalURL = PortalUtil.getPortalURL(company.getVirtualHostname(), secureSecurePort, true); } if (Validator.isNotNull(privateLayoutSet.getVirtualHostname())) { privateLayoutSetSecurePortalURL = PortalUtil.getPortalURL(privateLayoutSet.getVirtualHostname(), secureSecurePort, true); } if (Validator.isNotNull(publicLayoutSet.getVirtualHostname())) { publicLayoutSetSecurePortalURL = PortalUtil.getPortalURL(publicLayoutSet.getVirtualHostname(), secureSecurePort, true); } } StringBundler sb = new StringBundler(3); sb.append(VirtualLayoutConstants.CANONICAL_URL_SEPARATOR); sb.append(GroupConstants.CONTROL_PANEL_FRIENDLY_URL); sb.append(PropsValues.CONTROL_PANEL_LAYOUT_FRIENDLY_URL); content = StringUtil.replace(content, DATA_HANDLER_COMPANY_SECURE_URL, companySecurePortalURL); content = StringUtil.replace(content, DATA_HANDLER_COMPANY_URL, companyPortalURL); // Group friendly URLs while (true) { int groupFriendlyUrlPos = content.indexOf(DATA_HANDLER_GROUP_FRIENDLY_URL); if (groupFriendlyUrlPos == -1) { break; } int groupUuidPos = groupFriendlyUrlPos + DATA_HANDLER_GROUP_FRIENDLY_URL.length(); int endIndex = content.indexOf(StringPool.AT, groupUuidPos + 1); if (endIndex < (groupUuidPos + 1)) { content = StringUtil.replaceFirst(content, DATA_HANDLER_GROUP_FRIENDLY_URL, StringPool.BLANK, groupFriendlyUrlPos); continue; } String groupUuid = content.substring(groupUuidPos + 1, endIndex); Group groupFriendlyUrlGroup = GroupLocalServiceUtil.fetchGroupByUuidAndCompanyId(groupUuid, portletDataContext.getCompanyId()); if ((groupFriendlyUrlGroup == null) || groupUuid.startsWith(StringPool.SLASH)) { content = StringUtil.replaceFirst(content, DATA_HANDLER_GROUP_FRIENDLY_URL, group.getFriendlyURL(), groupFriendlyUrlPos); content = StringUtil.replaceFirst(content, StringPool.AT + groupUuid + StringPool.AT, StringPool.BLANK, content.indexOf(group.getFriendlyURL())); continue; } content = StringUtil.replaceFirst(content, DATA_HANDLER_GROUP_FRIENDLY_URL, StringPool.BLANK, groupFriendlyUrlPos); content = StringUtil.replaceFirst(content, StringPool.AT + groupUuid + StringPool.AT, groupFriendlyUrlGroup.getFriendlyURL(), groupFriendlyUrlPos); } content = StringUtil.replace(content, DATA_HANDLER_PATH_CONTEXT, PortalUtil.getPathContext()); content = StringUtil.replace(content, DATA_HANDLER_PRIVATE_GROUP_SERVLET_MAPPING, PropsValues.LAYOUT_FRIENDLY_URL_PRIVATE_GROUP_SERVLET_MAPPING); content = StringUtil.replace(content, DATA_HANDLER_PRIVATE_LAYOUT_SET_SECURE_URL, privateLayoutSetSecurePortalURL); content = StringUtil.replace(content, DATA_HANDLER_PRIVATE_LAYOUT_SET_URL, privateLayoutSetPortalURL); content = StringUtil.replace(content, DATA_HANDLER_PRIVATE_USER_SERVLET_MAPPING, PropsValues.LAYOUT_FRIENDLY_URL_PRIVATE_USER_SERVLET_MAPPING); content = StringUtil.replace(content, DATA_HANDLER_PUBLIC_LAYOUT_SET_SECURE_URL, publicLayoutSetSecurePortalURL); content = StringUtil.replace(content, DATA_HANDLER_PUBLIC_LAYOUT_SET_URL, publicLayoutSetPortalURL); content = StringUtil.replace(content, DATA_HANDLER_PUBLIC_SERVLET_MAPPING, PropsValues.LAYOUT_FRIENDLY_URL_PUBLIC_SERVLET_MAPPING); content = StringUtil.replace(content, DATA_HANDLER_SITE_ADMIN_URL, sb.toString()); return content; }
From source file:com.liferay.exportimport.content.processor.base.BaseTextExportImportContentProcessor.java
License:Open Source License
protected void validateLayoutReferences(long groupId, String content) throws PortalException { if (!isValidateLayoutReferences()) { return;//w w w . java 2 s .com } Group group = GroupLocalServiceUtil.getGroup(groupId); String[] patterns = { "href=", "[[" }; int beginPos = -1; int endPos = content.length(); int offset = 0; while (true) { if (beginPos > -1) { endPos = beginPos - 1; } beginPos = StringUtil.lastIndexOfAny(content, patterns, endPos); if (beginPos == -1) { break; } if (content.startsWith("href=", beginPos)) { offset = 5; char c = content.charAt(beginPos + offset); if ((c == CharPool.APOSTROPHE) || (c == CharPool.QUOTE)) { offset++; } } else if (content.charAt(beginPos) == CharPool.OPEN_BRACKET) { offset = 2; } endPos = StringUtil.indexOfAny(content, LAYOUT_REFERENCE_STOP_CHARS, beginPos + offset, endPos); if (endPos == -1) { continue; } String url = content.substring(beginPos + offset, endPos); endPos = url.indexOf(Portal.FRIENDLY_URL_SEPARATOR); if (endPos != -1) { url = url.substring(0, endPos); } if (url.endsWith(StringPool.SLASH)) { url = url.substring(0, url.length() - 1); } StringBundler urlSB = new StringBundler(1); url = replaceExportHostname(groupId, url, urlSB); if (!url.startsWith(StringPool.SLASH)) { continue; } String pathContext = PortalUtil.getPathContext(); if (pathContext.length() > 1) { if (!url.startsWith(pathContext)) { continue; } url = url.substring(pathContext.length()); } if (!url.startsWith(StringPool.SLASH)) { continue; } int pos = url.indexOf(StringPool.SLASH, 1); String localePath = StringPool.BLANK; Locale locale = null; if (pos != -1) { localePath = url.substring(0, pos); locale = LocaleUtil.fromLanguageId(localePath.substring(1), true, false); } if (locale != null) { String urlWithoutLocale = url.substring(localePath.length()); if (urlWithoutLocale.startsWith(PRIVATE_GROUP_SERVLET_MAPPING) || urlWithoutLocale.startsWith(PRIVATE_USER_SERVLET_MAPPING) || urlWithoutLocale.startsWith(PUBLIC_GROUP_SERVLET_MAPPING)) { url = urlWithoutLocale; } } boolean privateLayout = false; if (url.startsWith(PRIVATE_GROUP_SERVLET_MAPPING)) { url = url.substring(PRIVATE_GROUP_SERVLET_MAPPING.length() - 1); privateLayout = true; } else if (url.startsWith(PRIVATE_USER_SERVLET_MAPPING)) { url = url.substring(PRIVATE_USER_SERVLET_MAPPING.length() - 1); privateLayout = true; } else if (url.startsWith(PUBLIC_GROUP_SERVLET_MAPPING)) { url = url.substring(PUBLIC_GROUP_SERVLET_MAPPING.length() - 1); } else { String urlSBString = urlSB.toString(); LayoutSet layoutSet = null; if (urlSBString.contains(DATA_HANDLER_PUBLIC_LAYOUT_SET_SECURE_URL) || urlSBString.contains(DATA_HANDLER_PUBLIC_LAYOUT_SET_URL)) { layoutSet = group.getPublicLayoutSet(); } else if (urlSBString.contains(DATA_HANDLER_PRIVATE_LAYOUT_SET_SECURE_URL) || urlSBString.contains(DATA_HANDLER_PRIVATE_LAYOUT_SET_URL)) { layoutSet = group.getPrivateLayoutSet(); } if (layoutSet == null) { continue; } privateLayout = layoutSet.isPrivateLayout(); } Layout layout = LayoutLocalServiceUtil.fetchLayoutByFriendlyURL(groupId, privateLayout, url); if (layout != null) { continue; } String siteAdminURL = GroupConstants.CONTROL_PANEL_FRIENDLY_URL + PropsValues.CONTROL_PANEL_LAYOUT_FRIENDLY_URL; if (url.endsWith(VirtualLayoutConstants.CANONICAL_URL_SEPARATOR + siteAdminURL)) { url = url.substring(url.indexOf(siteAdminURL)); } pos = url.indexOf(StringPool.SLASH, 1); String groupFriendlyURL = url; if (pos != -1) { groupFriendlyURL = url.substring(0, pos); } Group urlGroup = GroupLocalServiceUtil.fetchFriendlyURLGroup(group.getCompanyId(), groupFriendlyURL); if (urlGroup == null) { throw new NoSuchLayoutException(); } if (pos == -1) { continue; } url = url.substring(pos); layout = LayoutLocalServiceUtil.getFriendlyURLLayout(urlGroup.getGroupId(), privateLayout, url); } }
From source file:com.liferay.exportimport.internal.content.processor.LayoutReferencesExportImportContentProcessor.java
License:Open Source License
protected String replaceExportHostname(long groupId, String url, StringBundler urlSB) throws PortalException { if (!_http.hasProtocol(url)) { return url; }/* ww w.j av a2s.c o m*/ boolean secure = _http.isSecure(url); int serverPort = _portal.getPortalServerPort(secure); if (serverPort == -1) { return url; } Group group = _groupLocalService.getGroup(groupId); LayoutSet publicLayoutSet = group.getPublicLayoutSet(); String publicLayoutSetVirtualHostname = publicLayoutSet.getVirtualHostname(); String portalUrl = StringPool.BLANK; if (Validator.isNotNull(publicLayoutSetVirtualHostname)) { portalUrl = _portal.getPortalURL(publicLayoutSetVirtualHostname, serverPort, secure); if (url.startsWith(portalUrl)) { if (secure) { urlSB.append(_DATA_HANDLER_PUBLIC_LAYOUT_SET_SECURE_URL); } else { urlSB.append(_DATA_HANDLER_PUBLIC_LAYOUT_SET_URL); } return url.substring(portalUrl.length()); } } LayoutSet privateLayoutSet = group.getPrivateLayoutSet(); String privateLayoutSetVirtualHostname = privateLayoutSet.getVirtualHostname(); if (Validator.isNotNull(privateLayoutSetVirtualHostname)) { portalUrl = _portal.getPortalURL(privateLayoutSetVirtualHostname, serverPort, secure); if (url.startsWith(portalUrl)) { if (secure) { urlSB.append(_DATA_HANDLER_PRIVATE_LAYOUT_SET_SECURE_URL); } else { urlSB.append(_DATA_HANDLER_PRIVATE_LAYOUT_SET_URL); } return url.substring(portalUrl.length()); } } Company company = _companyLocalService.getCompany(group.getCompanyId()); String companyVirtualHostname = company.getVirtualHostname(); if (Validator.isNotNull(companyVirtualHostname)) { portalUrl = _portal.getPortalURL(companyVirtualHostname, serverPort, secure); if (url.startsWith(portalUrl)) { if (secure) { urlSB.append(_DATA_HANDLER_COMPANY_SECURE_URL); } else { urlSB.append(_DATA_HANDLER_COMPANY_URL); } return url.substring(portalUrl.length()); } } portalUrl = _portal.getPortalURL("localhost", serverPort, secure); if (url.startsWith(portalUrl)) { return url.substring(portalUrl.length()); } return url; }
From source file:com.liferay.exportimport.internal.content.processor.LayoutReferencesExportImportContentProcessor.java
License:Open Source License
protected String replaceExportLayoutReferences(PortletDataContext portletDataContext, StagedModel stagedModel, String content) throws Exception { Group group = _groupLocalService.getGroup(portletDataContext.getScopeGroupId()); StringBuilder sb = new StringBuilder(content); String[] patterns = { "href=", "[[" }; int beginPos = -1; int endPos = content.length(); int offset = 0; while (true) { if (beginPos > -1) { endPos = beginPos - 1;// ww w .j a v a 2 s. c o m } beginPos = StringUtil.lastIndexOfAny(content, patterns, endPos); if (beginPos == -1) { break; } if (content.startsWith("href=", beginPos)) { offset = 5; char c = content.charAt(beginPos + offset); if ((c == CharPool.APOSTROPHE) || (c == CharPool.QUOTE)) { offset++; } } else if (content.charAt(beginPos) == CharPool.OPEN_BRACKET) { offset = 2; } endPos = StringUtil.indexOfAny(content, _LAYOUT_REFERENCE_STOP_CHARS, beginPos + offset, endPos); if (endPos == -1) { continue; } String url = content.substring(beginPos + offset, endPos); if (url.endsWith(StringPool.SLASH)) { url = url.substring(0, url.length() - 1); } StringBundler urlSB = new StringBundler(6); try { url = replaceExportHostname(portletDataContext.getScopeGroupId(), url, urlSB); if (!url.startsWith(StringPool.SLASH)) { continue; } String pathContext = _portal.getPathContext(); if (pathContext.length() > 1) { if (!url.startsWith(pathContext)) { continue; } urlSB.append(_DATA_HANDLER_PATH_CONTEXT); url = url.substring(pathContext.length()); } if (!url.startsWith(StringPool.SLASH)) { continue; } int pos = url.indexOf(StringPool.SLASH, 1); String localePath = StringPool.BLANK; Locale locale = null; if (pos != -1) { localePath = url.substring(0, pos); locale = LocaleUtil.fromLanguageId(localePath.substring(1), true, false); } if (locale != null) { String urlWithoutLocale = url.substring(localePath.length()); if (urlWithoutLocale.startsWith(_PRIVATE_GROUP_SERVLET_MAPPING) || urlWithoutLocale.startsWith(_PRIVATE_USER_SERVLET_MAPPING) || urlWithoutLocale.startsWith(_PUBLIC_GROUP_SERVLET_MAPPING)) { urlSB.append(localePath); url = urlWithoutLocale; } } boolean privateLayout = false; if (url.startsWith(_PRIVATE_GROUP_SERVLET_MAPPING)) { urlSB.append(_DATA_HANDLER_PRIVATE_GROUP_SERVLET_MAPPING); url = url.substring(_PRIVATE_GROUP_SERVLET_MAPPING.length() - 1); privateLayout = true; } else if (url.startsWith(_PRIVATE_USER_SERVLET_MAPPING)) { urlSB.append(_DATA_HANDLER_PRIVATE_USER_SERVLET_MAPPING); url = url.substring(_PRIVATE_USER_SERVLET_MAPPING.length() - 1); privateLayout = true; } else if (url.startsWith(_PUBLIC_GROUP_SERVLET_MAPPING)) { urlSB.append(_DATA_HANDLER_PUBLIC_SERVLET_MAPPING); url = url.substring(_PUBLIC_GROUP_SERVLET_MAPPING.length() - 1); } else { String urlSBString = urlSB.toString(); LayoutSet layoutSet = null; if (urlSBString.contains(_DATA_HANDLER_PUBLIC_LAYOUT_SET_SECURE_URL) || urlSBString.contains(_DATA_HANDLER_PUBLIC_LAYOUT_SET_URL)) { layoutSet = group.getPublicLayoutSet(); } else if (urlSBString.contains(_DATA_HANDLER_PRIVATE_LAYOUT_SET_SECURE_URL) || urlSBString.contains(_DATA_HANDLER_PRIVATE_LAYOUT_SET_URL)) { layoutSet = group.getPrivateLayoutSet(); } if (layoutSet == null) { continue; } privateLayout = layoutSet.isPrivateLayout(); LayoutFriendlyURL layoutFriendlyUrl = _layoutFriendlyURLLocalService .fetchFirstLayoutFriendlyURL(group.getGroupId(), privateLayout, url); if (layoutFriendlyUrl == null) { continue; } if (privateLayout) { if (group.isUser()) { urlSB.append(_DATA_HANDLER_PRIVATE_USER_SERVLET_MAPPING); } else { urlSB.append(_DATA_HANDLER_PRIVATE_GROUP_SERVLET_MAPPING); } } else { urlSB.append(_DATA_HANDLER_PUBLIC_SERVLET_MAPPING); } urlSB.append(_DATA_HANDLER_GROUP_FRIENDLY_URL); continue; } long groupId = group.getGroupId(); Layout layout = _layoutLocalService.fetchLayoutByFriendlyURL(groupId, privateLayout, url); if (layout != null) { Element entityElement = portletDataContext.getExportDataElement(stagedModel); portletDataContext.addReferenceElement(stagedModel, entityElement, layout, PortletDataContext.REFERENCE_TYPE_DEPENDENCY, true); continue; } pos = url.indexOf(StringPool.SLASH, 1); String groupFriendlyURL = url; if (pos != -1) { groupFriendlyURL = url.substring(0, pos); } Group urlGroup = _groupLocalService.fetchFriendlyURLGroup(group.getCompanyId(), groupFriendlyURL); if (urlGroup == null) { throw new NoSuchLayoutException(); } urlSB.append(_DATA_HANDLER_GROUP_FRIENDLY_URL); // Append the UUID. This information will be used during the // import process when looking up the proper group for the link. urlSB.append(StringPool.AT); if (urlGroup.isStagedRemotely()) { String remoteGroupUuid = urlGroup.getTypeSettingsProperty("remoteGroupUUID"); if (Validator.isNotNull(remoteGroupUuid)) { urlSB.append(remoteGroupUuid); } } else if (urlGroup.isStaged()) { Group liveGroup = urlGroup.getLiveGroup(); urlSB.append(liveGroup.getUuid()); } else if (group.getGroupId() == urlGroup.getGroupId()) { urlSB.append(urlGroup.getFriendlyURL()); } else { urlSB.append(urlGroup.getUuid()); } urlSB.append(StringPool.AT); String siteAdminURL = GroupConstants.CONTROL_PANEL_FRIENDLY_URL + PropsValues.CONTROL_PANEL_LAYOUT_FRIENDLY_URL; if (url.endsWith(siteAdminURL)) { urlSB.append(_DATA_HANDLER_SITE_ADMIN_URL); url = StringPool.BLANK; continue; } if (pos == -1) { url = StringPool.BLANK; continue; } url = url.substring(pos); layout = _layoutLocalService.getFriendlyURLLayout(urlGroup.getGroupId(), privateLayout, url); Element entityElement = portletDataContext.getExportDataElement(stagedModel); portletDataContext.addReferenceElement(stagedModel, entityElement, layout, PortletDataContext.REFERENCE_TYPE_DEPENDENCY, true); } catch (Exception e) { if (e instanceof NoSuchLayoutException && !_exportImportServiceConfiguration.validateLayoutReferences()) { continue; } if (_log.isDebugEnabled()) { _log.debug(e, e); } else if (_log.isWarnEnabled()) { StringBundler exceptionSB = new StringBundler(6); exceptionSB.append("Unable to process layout URL "); exceptionSB.append(url); exceptionSB.append(" for staged model "); exceptionSB.append(stagedModel.getModelClassName()); exceptionSB.append(" with primary key "); exceptionSB.append(stagedModel.getPrimaryKeyObj()); _log.warn(exceptionSB.toString()); } } finally { if (urlSB.length() > 0) { urlSB.append(url); url = urlSB.toString(); } sb.replace(beginPos + offset, endPos, url); } } return sb.toString(); }
From source file:com.liferay.exportimport.internal.content.processor.LayoutReferencesExportImportContentProcessor.java
License:Open Source License
protected String replaceImportLayoutReferences(PortletDataContext portletDataContext, String content) throws Exception { String companyPortalURL = StringPool.BLANK; String privateLayoutSetPortalURL = StringPool.BLANK; String publicLayoutSetPortalURL = StringPool.BLANK; Group group = _groupLocalService.getGroup(portletDataContext.getScopeGroupId()); Company company = _companyLocalService.getCompany(group.getCompanyId()); LayoutSet privateLayoutSet = group.getPrivateLayoutSet(); LayoutSet publicLayoutSet = group.getPublicLayoutSet(); int serverPort = _portal.getPortalServerPort(false); if (serverPort != -1) { if (Validator.isNotNull(company.getVirtualHostname())) { companyPortalURL = _portal.getPortalURL(company.getVirtualHostname(), serverPort, false); }// w ww. j a v a 2 s . c o m if (Validator.isNotNull(privateLayoutSet.getVirtualHostname())) { privateLayoutSetPortalURL = _portal.getPortalURL(privateLayoutSet.getVirtualHostname(), serverPort, false); } if (Validator.isNotNull(publicLayoutSet.getVirtualHostname())) { publicLayoutSetPortalURL = _portal.getPortalURL(publicLayoutSet.getVirtualHostname(), serverPort, false); } } int secureSecurePort = _portal.getPortalServerPort(true); String companySecurePortalURL = StringPool.BLANK; String privateLayoutSetSecurePortalURL = StringPool.BLANK; String publicLayoutSetSecurePortalURL = StringPool.BLANK; if (secureSecurePort != -1) { if (Validator.isNotNull(company.getVirtualHostname())) { companySecurePortalURL = _portal.getPortalURL(company.getVirtualHostname(), secureSecurePort, true); } if (Validator.isNotNull(privateLayoutSet.getVirtualHostname())) { privateLayoutSetSecurePortalURL = _portal.getPortalURL(privateLayoutSet.getVirtualHostname(), secureSecurePort, true); } if (Validator.isNotNull(publicLayoutSet.getVirtualHostname())) { publicLayoutSetSecurePortalURL = _portal.getPortalURL(publicLayoutSet.getVirtualHostname(), secureSecurePort, true); } } StringBundler sb = new StringBundler(3); sb.append(VirtualLayoutConstants.CANONICAL_URL_SEPARATOR); sb.append(GroupConstants.CONTROL_PANEL_FRIENDLY_URL); sb.append(PropsValues.CONTROL_PANEL_LAYOUT_FRIENDLY_URL); content = StringUtil.replace(content, _DATA_HANDLER_COMPANY_SECURE_URL, companySecurePortalURL); content = StringUtil.replace(content, _DATA_HANDLER_COMPANY_URL, companyPortalURL); // Group friendly URLs while (true) { int groupFriendlyUrlPos = content.indexOf(_DATA_HANDLER_GROUP_FRIENDLY_URL); if (groupFriendlyUrlPos == -1) { break; } int groupUuidPos = groupFriendlyUrlPos + _DATA_HANDLER_GROUP_FRIENDLY_URL.length(); int endIndex = content.indexOf(StringPool.AT, groupUuidPos + 1); if (endIndex < (groupUuidPos + 1)) { content = StringUtil.replaceFirst(content, _DATA_HANDLER_GROUP_FRIENDLY_URL, StringPool.BLANK, groupFriendlyUrlPos); continue; } String groupUuid = content.substring(groupUuidPos + 1, endIndex); Group groupFriendlyUrlGroup = _groupLocalService.fetchGroupByUuidAndCompanyId(groupUuid, portletDataContext.getCompanyId()); if ((groupFriendlyUrlGroup == null) || groupUuid.startsWith(StringPool.SLASH)) { content = StringUtil.replaceFirst(content, _DATA_HANDLER_GROUP_FRIENDLY_URL, group.getFriendlyURL(), groupFriendlyUrlPos); content = StringUtil.replaceFirst(content, StringPool.AT + groupUuid + StringPool.AT, StringPool.BLANK, content.indexOf(group.getFriendlyURL())); continue; } content = StringUtil.replaceFirst(content, _DATA_HANDLER_GROUP_FRIENDLY_URL, StringPool.BLANK, groupFriendlyUrlPos); content = StringUtil.replaceFirst(content, StringPool.AT + groupUuid + StringPool.AT, groupFriendlyUrlGroup.getFriendlyURL(), groupFriendlyUrlPos); } content = StringUtil.replace(content, _DATA_HANDLER_PATH_CONTEXT, _portal.getPathContext()); content = StringUtil.replace(content, _DATA_HANDLER_PRIVATE_GROUP_SERVLET_MAPPING, PropsValues.LAYOUT_FRIENDLY_URL_PRIVATE_GROUP_SERVLET_MAPPING); content = StringUtil.replace(content, _DATA_HANDLER_PRIVATE_LAYOUT_SET_SECURE_URL, privateLayoutSetSecurePortalURL); content = StringUtil.replace(content, _DATA_HANDLER_PRIVATE_LAYOUT_SET_URL, privateLayoutSetPortalURL); content = StringUtil.replace(content, _DATA_HANDLER_PRIVATE_USER_SERVLET_MAPPING, PropsValues.LAYOUT_FRIENDLY_URL_PRIVATE_USER_SERVLET_MAPPING); content = StringUtil.replace(content, _DATA_HANDLER_PUBLIC_LAYOUT_SET_SECURE_URL, publicLayoutSetSecurePortalURL); content = StringUtil.replace(content, _DATA_HANDLER_PUBLIC_LAYOUT_SET_URL, publicLayoutSetPortalURL); content = StringUtil.replace(content, _DATA_HANDLER_PUBLIC_SERVLET_MAPPING, PropsValues.LAYOUT_FRIENDLY_URL_PUBLIC_SERVLET_MAPPING); content = StringUtil.replace(content, _DATA_HANDLER_SITE_ADMIN_URL, sb.toString()); return content; }
From source file:com.liferay.exportimport.internal.content.processor.LayoutReferencesExportImportContentProcessor.java
License:Open Source License
protected void validateLayoutReferences(long groupId, String content) throws PortalException { if (!_exportImportServiceConfiguration.validateLayoutReferences()) { return;/*w w w . ja v a 2 s . co m*/ } Group group = _groupLocalService.getGroup(groupId); String[] patterns = { "href=", "[[" }; int beginPos = -1; int endPos = content.length(); int offset = 0; while (true) { if (beginPos > -1) { endPos = beginPos - 1; } beginPos = StringUtil.lastIndexOfAny(content, patterns, endPos); if (beginPos == -1) { break; } if (content.startsWith("href=", beginPos)) { offset = 5; char c = content.charAt(beginPos + offset); if ((c == CharPool.APOSTROPHE) || (c == CharPool.QUOTE)) { offset++; } } else if (content.charAt(beginPos) == CharPool.OPEN_BRACKET) { offset = 2; } endPos = StringUtil.indexOfAny(content, _LAYOUT_REFERENCE_STOP_CHARS, beginPos + offset, endPos); if (endPos == -1) { continue; } String url = content.substring(beginPos + offset, endPos); endPos = url.indexOf(Portal.FRIENDLY_URL_SEPARATOR); if (endPos != -1) { url = url.substring(0, endPos); } if (url.endsWith(StringPool.SLASH)) { url = url.substring(0, url.length() - 1); } StringBundler urlSB = new StringBundler(1); url = replaceExportHostname(groupId, url, urlSB); if (!url.startsWith(StringPool.SLASH)) { continue; } String pathContext = _portal.getPathContext(); if (pathContext.length() > 1) { if (!url.startsWith(pathContext)) { continue; } url = url.substring(pathContext.length()); } if (!url.startsWith(StringPool.SLASH)) { continue; } int pos = url.indexOf(StringPool.SLASH, 1); String localePath = StringPool.BLANK; Locale locale = null; if (pos != -1) { localePath = url.substring(0, pos); locale = LocaleUtil.fromLanguageId(localePath.substring(1), true, false); } if (locale != null) { String urlWithoutLocale = url.substring(localePath.length()); if (urlWithoutLocale.startsWith(_PRIVATE_GROUP_SERVLET_MAPPING) || urlWithoutLocale.startsWith(_PRIVATE_USER_SERVLET_MAPPING) || urlWithoutLocale.startsWith(_PUBLIC_GROUP_SERVLET_MAPPING)) { url = urlWithoutLocale; } } boolean privateLayout = false; if (url.startsWith(_PRIVATE_GROUP_SERVLET_MAPPING)) { url = url.substring(_PRIVATE_GROUP_SERVLET_MAPPING.length() - 1); privateLayout = true; } else if (url.startsWith(_PRIVATE_USER_SERVLET_MAPPING)) { url = url.substring(_PRIVATE_USER_SERVLET_MAPPING.length() - 1); privateLayout = true; } else if (url.startsWith(_PUBLIC_GROUP_SERVLET_MAPPING)) { url = url.substring(_PUBLIC_GROUP_SERVLET_MAPPING.length() - 1); } else { String urlSBString = urlSB.toString(); LayoutSet layoutSet = null; if (urlSBString.contains(_DATA_HANDLER_PUBLIC_LAYOUT_SET_SECURE_URL) || urlSBString.contains(_DATA_HANDLER_PUBLIC_LAYOUT_SET_URL)) { layoutSet = group.getPublicLayoutSet(); } else if (urlSBString.contains(_DATA_HANDLER_PRIVATE_LAYOUT_SET_SECURE_URL) || urlSBString.contains(_DATA_HANDLER_PRIVATE_LAYOUT_SET_URL)) { layoutSet = group.getPrivateLayoutSet(); } if (layoutSet == null) { continue; } privateLayout = layoutSet.isPrivateLayout(); } Layout layout = _layoutLocalService.fetchLayoutByFriendlyURL(groupId, privateLayout, url); if (layout != null) { continue; } String siteAdminURL = GroupConstants.CONTROL_PANEL_FRIENDLY_URL + PropsValues.CONTROL_PANEL_LAYOUT_FRIENDLY_URL; if (url.endsWith(VirtualLayoutConstants.CANONICAL_URL_SEPARATOR + siteAdminURL)) { url = url.substring(url.indexOf(siteAdminURL)); } pos = url.indexOf(StringPool.SLASH, 1); String groupFriendlyURL = url; if (pos != -1) { groupFriendlyURL = url.substring(0, pos); } Group urlGroup = _groupLocalService.fetchFriendlyURLGroup(group.getCompanyId(), groupFriendlyURL); if (urlGroup == null) { throw new NoSuchLayoutException( "Unable validate referenced page because it cannot be " + "found with url: " + url); } if (pos == -1) { continue; } url = url.substring(pos); try { layout = _layoutLocalService.getFriendlyURLLayout(urlGroup.getGroupId(), privateLayout, url); } catch (NoSuchLayoutException nsle) { throw new NoSuchLayoutException("Unable to validate referenced page because the page " + "group cannot be found: " + groupId, nsle); } } }
From source file:com.liferay.invitation.invite.members.web.internal.notifications.InviteMembersUserNotificationHandler.java
License:Open Source License
protected String getSiteDescriptiveName(long groupId, ServiceContext serviceContext) throws Exception { Group group = _groupLocalService.getGroup(groupId); StringBundler sb = new StringBundler(6); sb.append("<a"); if (group.hasPublicLayouts()) { sb.append(" href=\""); String groupFriendlyURL = _portal.getGroupFriendlyURL(group.getPublicLayoutSet(), serviceContext.getThemeDisplay()); sb.append(groupFriendlyURL);/* w ww . j av a 2s .c om*/ sb.append("\">"); } else { sb.append(">"); } sb.append(HtmlUtil.escape(group.getDescriptiveName(serviceContext.getLocale()))); sb.append("</a>"); return sb.toString(); }
From source file:com.liferay.site.admin.web.internal.portlet.SiteAdminPortlet.java
License:Open Source License
protected Group updateGroup(ActionRequest actionRequest) throws Exception { ThemeDisplay themeDisplay = (ThemeDisplay) actionRequest.getAttribute(WebKeys.THEME_DISPLAY); long userId = portal.getUserId(actionRequest); long liveGroupId = ParamUtil.getLong(actionRequest, "liveGroupId"); long parentGroupId = ParamUtil.getLong(actionRequest, "parentGroupSearchContainerPrimaryKeys", GroupConstants.DEFAULT_PARENT_GROUP_ID); Map<Locale, String> nameMap = null; Map<Locale, String> descriptionMap = null; int type = 0; String friendlyURL = null;/*from w w w.jav a 2 s. c om*/ boolean inheritContent = false; boolean active = false; boolean manualMembership = true; int membershipRestriction = GroupConstants.DEFAULT_MEMBERSHIP_RESTRICTION; boolean actionRequestMembershipRestriction = ParamUtil.getBoolean(actionRequest, "membershipRestriction"); if (actionRequestMembershipRestriction && (parentGroupId != GroupConstants.DEFAULT_PARENT_GROUP_ID)) { membershipRestriction = GroupConstants.MEMBERSHIP_RESTRICTION_TO_PARENT_SITE_MEMBERS; } ServiceContext serviceContext = ServiceContextFactory.getInstance(Group.class.getName(), actionRequest); ServiceContextThreadLocal.pushServiceContext(serviceContext); Group liveGroup = null; if (liveGroupId <= 0) { // Add group nameMap = LocalizationUtil.getLocalizationMap(actionRequest, "name"); descriptionMap = LocalizationUtil.getLocalizationMap(actionRequest, "description"); type = ParamUtil.getInteger(actionRequest, "type"); friendlyURL = ParamUtil.getString(actionRequest, "friendlyURL"); manualMembership = ParamUtil.getBoolean(actionRequest, "manualMembership"); inheritContent = ParamUtil.getBoolean(actionRequest, "inheritContent"); active = ParamUtil.getBoolean(actionRequest, "active"); liveGroup = groupService.addGroup(parentGroupId, GroupConstants.DEFAULT_LIVE_GROUP_ID, nameMap, descriptionMap, type, manualMembership, membershipRestriction, friendlyURL, true, inheritContent, active, serviceContext); LiveUsers.joinGroup(themeDisplay.getCompanyId(), liveGroup.getGroupId(), userId); } else { // Update group liveGroup = groupLocalService.getGroup(liveGroupId); nameMap = LocalizationUtil.getLocalizationMap(actionRequest, "name", liveGroup.getNameMap()); descriptionMap = LocalizationUtil.getLocalizationMap(actionRequest, "description", liveGroup.getDescriptionMap()); type = ParamUtil.getInteger(actionRequest, "type", liveGroup.getType()); manualMembership = ParamUtil.getBoolean(actionRequest, "manualMembership", liveGroup.isManualMembership()); friendlyURL = ParamUtil.getString(actionRequest, "friendlyURL", liveGroup.getFriendlyURL()); inheritContent = ParamUtil.getBoolean(actionRequest, "inheritContent", liveGroup.getInheritContent()); active = ParamUtil.getBoolean(actionRequest, "active", liveGroup.getActive()); liveGroup = groupService.updateGroup(liveGroupId, parentGroupId, nameMap, descriptionMap, type, manualMembership, membershipRestriction, friendlyURL, inheritContent, active, serviceContext); if (type == GroupConstants.TYPE_SITE_OPEN) { List<MembershipRequest> membershipRequests = membershipRequestLocalService.search(liveGroupId, MembershipRequestConstants.STATUS_PENDING, QueryUtil.ALL_POS, QueryUtil.ALL_POS); for (MembershipRequest membershipRequest : membershipRequests) { membershipRequestService.updateStatus(membershipRequest.getMembershipRequestId(), themeDisplay.translate("your-membership-has-been-approved"), MembershipRequestConstants.STATUS_APPROVED, serviceContext); LiveUsers.joinGroup(themeDisplay.getCompanyId(), membershipRequest.getGroupId(), new long[] { membershipRequest.getUserId() }); } } } // Settings UnicodeProperties typeSettingsProperties = liveGroup.getTypeSettingsProperties(); String customJspServletContextName = ParamUtil.getString(actionRequest, "customJspServletContextName", typeSettingsProperties.getProperty("customJspServletContextName")); typeSettingsProperties.setProperty("customJspServletContextName", customJspServletContextName); typeSettingsProperties.setProperty("defaultSiteRoleIds", ListUtil.toString(getRoles(actionRequest), Role.ROLE_ID_ACCESSOR, StringPool.COMMA)); typeSettingsProperties.setProperty("defaultTeamIds", ListUtil.toString(getTeams(actionRequest), Team.TEAM_ID_ACCESSOR, StringPool.COMMA)); String[] analyticsTypes = PrefsPropsUtil.getStringArray(themeDisplay.getCompanyId(), PropsKeys.ADMIN_ANALYTICS_TYPES, StringPool.NEW_LINE); for (String analyticsType : analyticsTypes) { if (StringUtil.equalsIgnoreCase(analyticsType, "google")) { String googleAnalyticsId = ParamUtil.getString(actionRequest, "googleAnalyticsId", typeSettingsProperties.getProperty("googleAnalyticsId")); typeSettingsProperties.setProperty("googleAnalyticsId", googleAnalyticsId); } else { String analyticsScript = ParamUtil.getString(actionRequest, Sites.ANALYTICS_PREFIX + analyticsType, typeSettingsProperties.getProperty(analyticsType)); typeSettingsProperties.setProperty(Sites.ANALYTICS_PREFIX + analyticsType, analyticsScript); } } boolean trashEnabled = ParamUtil.getBoolean(actionRequest, "trashEnabled", GetterUtil.getBoolean(typeSettingsProperties.getProperty("trashEnabled"), true)); typeSettingsProperties.setProperty("trashEnabled", String.valueOf(trashEnabled)); int trashEntriesMaxAgeCompany = PrefsPropsUtil.getInteger(themeDisplay.getCompanyId(), PropsKeys.TRASH_ENTRIES_MAX_AGE); int trashEntriesMaxAgeGroup = ParamUtil.getInteger(actionRequest, "trashEntriesMaxAge"); if (trashEntriesMaxAgeGroup <= 0) { trashEntriesMaxAgeGroup = GetterUtil.getInteger( typeSettingsProperties.getProperty("trashEntriesMaxAge"), trashEntriesMaxAgeCompany); } if (trashEntriesMaxAgeGroup != trashEntriesMaxAgeCompany) { typeSettingsProperties.setProperty("trashEntriesMaxAge", String.valueOf(GetterUtil.getInteger(trashEntriesMaxAgeGroup))); } else { typeSettingsProperties.remove("trashEntriesMaxAge"); } int contentSharingWithChildrenEnabled = ParamUtil.getInteger(actionRequest, "contentSharingWithChildrenEnabled", GetterUtil.getInteger(typeSettingsProperties.getProperty("contentSharingWithChildrenEnabled"), Sites.CONTENT_SHARING_WITH_CHILDREN_DEFAULT_VALUE)); typeSettingsProperties.setProperty("contentSharingWithChildrenEnabled", String.valueOf(contentSharingWithChildrenEnabled)); UnicodeProperties formTypeSettingsProperties = PropertiesParamUtil.getProperties(actionRequest, "TypeSettingsProperties--"); typeSettingsProperties.putAll(formTypeSettingsProperties); // Virtual hosts LayoutSet publicLayoutSet = liveGroup.getPublicLayoutSet(); String publicVirtualHost = ParamUtil.getString(actionRequest, "publicVirtualHost", publicLayoutSet.getVirtualHostname()); layoutSetService.updateVirtualHost(liveGroup.getGroupId(), false, publicVirtualHost); LayoutSet privateLayoutSet = liveGroup.getPrivateLayoutSet(); String privateVirtualHost = ParamUtil.getString(actionRequest, "privateVirtualHost", privateLayoutSet.getVirtualHostname()); layoutSetService.updateVirtualHost(liveGroup.getGroupId(), true, privateVirtualHost); // Staging if (liveGroup.hasStagingGroup()) { Group stagingGroup = liveGroup.getStagingGroup(); friendlyURL = ParamUtil.getString(actionRequest, "stagingFriendlyURL", stagingGroup.getFriendlyURL()); groupService.updateFriendlyURL(stagingGroup.getGroupId(), friendlyURL); LayoutSet stagingPublicLayoutSet = stagingGroup.getPublicLayoutSet(); publicVirtualHost = ParamUtil.getString(actionRequest, "stagingPublicVirtualHost", stagingPublicLayoutSet.getVirtualHostname()); layoutSetService.updateVirtualHost(stagingGroup.getGroupId(), false, publicVirtualHost); LayoutSet stagingPrivateLayoutSet = stagingGroup.getPrivateLayoutSet(); privateVirtualHost = ParamUtil.getString(actionRequest, "stagingPrivateVirtualHost", stagingPrivateLayoutSet.getVirtualHostname()); layoutSetService.updateVirtualHost(stagingGroup.getGroupId(), true, privateVirtualHost); UnicodeProperties stagedGroupTypeSettingsProperties = stagingGroup.getTypeSettingsProperties(); stagedGroupTypeSettingsProperties.putAll(formTypeSettingsProperties); groupService.updateGroup(stagingGroup.getGroupId(), stagedGroupTypeSettingsProperties.toString()); } liveGroup = groupService.updateGroup(liveGroup.getGroupId(), typeSettingsProperties.toString()); // Layout set prototypes long privateLayoutSetPrototypeId = ParamUtil.getLong(actionRequest, "privateLayoutSetPrototypeId"); long publicLayoutSetPrototypeId = ParamUtil.getLong(actionRequest, "publicLayoutSetPrototypeId"); boolean privateLayoutSetPrototypeLinkEnabled = ParamUtil.getBoolean(actionRequest, "privateLayoutSetPrototypeLinkEnabled", privateLayoutSet.isLayoutSetPrototypeLinkEnabled()); boolean publicLayoutSetPrototypeLinkEnabled = ParamUtil.getBoolean(actionRequest, "publicLayoutSetPrototypeLinkEnabled", publicLayoutSet.isLayoutSetPrototypeLinkEnabled()); if ((privateLayoutSetPrototypeId == 0) && (publicLayoutSetPrototypeId == 0) && !privateLayoutSetPrototypeLinkEnabled && !publicLayoutSetPrototypeLinkEnabled) { long layoutSetPrototypeId = ParamUtil.getLong(actionRequest, "layoutSetPrototypeId"); int layoutSetVisibility = ParamUtil.getInteger(actionRequest, "layoutSetVisibility"); boolean layoutSetPrototypeLinkEnabled = ParamUtil.getBoolean(actionRequest, "layoutSetPrototypeLinkEnabled", layoutSetPrototypeId > 0); if (layoutSetVisibility == _LAYOUT_SET_VISIBILITY_PRIVATE) { privateLayoutSetPrototypeId = layoutSetPrototypeId; privateLayoutSetPrototypeLinkEnabled = layoutSetPrototypeLinkEnabled; } else { publicLayoutSetPrototypeId = layoutSetPrototypeId; publicLayoutSetPrototypeLinkEnabled = layoutSetPrototypeLinkEnabled; } } if (!liveGroup.isStaged() || liveGroup.isStagedRemotely()) { SitesUtil.updateLayoutSetPrototypesLinks(liveGroup, publicLayoutSetPrototypeId, privateLayoutSetPrototypeId, publicLayoutSetPrototypeLinkEnabled, privateLayoutSetPrototypeLinkEnabled); } else { SitesUtil.updateLayoutSetPrototypesLinks(liveGroup.getStagingGroup(), publicLayoutSetPrototypeId, privateLayoutSetPrototypeId, publicLayoutSetPrototypeLinkEnabled, privateLayoutSetPrototypeLinkEnabled); } themeDisplay.setSiteGroupId(liveGroup.getGroupId()); return liveGroup; }