com.liferay.commerce.channel.web.internal.health.status.CommerceCheckoutCommerceHealthStatus Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of com.liferay.commerce.channel.web
Show all versions of com.liferay.commerce.channel.web
Liferay Commerce Channel Web
The newest version!
/**
* SPDX-FileCopyrightText: (c) 2000 Liferay, Inc. https://liferay.com
* SPDX-License-Identifier: LGPL-2.1-or-later OR LicenseRef-Liferay-DXP-EULA-2.0.0-2023-06
*/
package com.liferay.commerce.channel.web.internal.health.status;
import com.liferay.commerce.constants.CommerceHealthStatusConstants;
import com.liferay.commerce.constants.CommercePortletKeys;
import com.liferay.commerce.product.channel.CommerceChannelHealthStatus;
import com.liferay.commerce.product.constants.CommerceChannelConstants;
import com.liferay.commerce.product.model.CommerceChannel;
import com.liferay.commerce.product.service.CommerceChannelService;
import com.liferay.petra.string.StringPool;
import com.liferay.portal.kernel.exception.PortalException;
import com.liferay.portal.kernel.language.Language;
import com.liferay.portal.kernel.model.Layout;
import com.liferay.portal.kernel.model.LayoutConstants;
import com.liferay.portal.kernel.model.LayoutTypePortlet;
import com.liferay.portal.kernel.model.Role;
import com.liferay.portal.kernel.model.RoleConstants;
import com.liferay.portal.kernel.security.auth.PrincipalThreadLocal;
import com.liferay.portal.kernel.service.LayoutService;
import com.liferay.portal.kernel.service.ResourcePermissionService;
import com.liferay.portal.kernel.service.RoleLocalService;
import com.liferay.portal.kernel.service.ServiceContext;
import com.liferay.portal.kernel.util.Portal;
import com.liferay.portal.kernel.util.ResourceBundleUtil;
import com.liferay.portal.kernel.util.StringUtil;
import java.util.List;
import java.util.Locale;
import java.util.ResourceBundle;
import org.osgi.service.component.annotations.Component;
import org.osgi.service.component.annotations.Reference;
/**
* @author Alessio Antonio Rendina
*/
@Component(
property = {
"commerce.channel.health.status.display.order:Integer=30",
"commerce.channel.health.status.key=" + CommerceHealthStatusConstants.COMMERCE_CHECKOUT_COMMERCE_HEALTH_STATUS_KEY
},
service = CommerceChannelHealthStatus.class
)
public class CommerceCheckoutCommerceHealthStatus
implements CommerceChannelHealthStatus {
@Override
public void fixIssue(long companyId, long commerceChannelId)
throws PortalException {
if (isFixed(companyId, commerceChannelId)) {
return;
}
CommerceChannel commerceChannel =
_commerceChannelService.getCommerceChannel(commerceChannelId);
String name = "Checkout";
String friendlyURL =
StringPool.FORWARD_SLASH + StringUtil.toLowerCase(name);
boolean privateLayout = true;
List layouts = _layoutService.getLayouts(
commerceChannel.getSiteGroupId(), true);
if (layouts.isEmpty()) {
privateLayout = false;
}
Layout layout = _layoutService.addLayout(
null, commerceChannel.getSiteGroupId(), privateLayout,
LayoutConstants.DEFAULT_PARENT_LAYOUT_ID, name, name, null,
LayoutConstants.TYPE_PORTLET, true, friendlyURL,
new ServiceContext());
LayoutTypePortlet layoutTypePortlet =
(LayoutTypePortlet)layout.getLayoutType();
layoutTypePortlet.setLayoutTemplateId(
PrincipalThreadLocal.getUserId(), "1_column", false);
layoutTypePortlet.addPortletId(
PrincipalThreadLocal.getUserId(),
CommercePortletKeys.COMMERCE_CHECKOUT);
_layoutService.updateLayout(
layout.getGroupId(), layout.isPrivateLayout(), layout.getLayoutId(),
layout.getTypeSettings());
Role role = _roleLocalService.fetchRole(
layout.getCompanyId(), RoleConstants.GUEST);
if (role != null) {
_resourcePermissionService.setIndividualResourcePermissions(
layout.getGroupId(), layout.getCompanyId(),
layout.getModelClassName(), String.valueOf(layout.getPlid()),
role.getRoleId(), new String[0]);
}
}
@Override
public String getDescription(Locale locale) {
ResourceBundle resourceBundle = ResourceBundleUtil.getBundle(
"content.Language", locale, getClass());
return _language.get(
resourceBundle,
CommerceHealthStatusConstants.
COMMERCE_CHECKOUT_COMMERCE_HEALTH_STATUS_DESCRIPTION);
}
@Override
public String getKey() {
return CommerceHealthStatusConstants.
COMMERCE_CHECKOUT_COMMERCE_HEALTH_STATUS_KEY;
}
@Override
public String getName(Locale locale) {
ResourceBundle resourceBundle = ResourceBundleUtil.getBundle(
"content.Language", locale, getClass());
return _language.get(
resourceBundle,
CommerceHealthStatusConstants.
COMMERCE_CHECKOUT_COMMERCE_HEALTH_STATUS_KEY);
}
@Override
public boolean isFixed(long companyId, long commerceChannelId)
throws PortalException {
CommerceChannel commerceChannel =
_commerceChannelService.getCommerceChannel(commerceChannelId);
String commerceChannelType = commerceChannel.getType();
if (!commerceChannelType.equals(
CommerceChannelConstants.CHANNEL_TYPE_SITE)) {
return true;
}
long plid = _portal.getPlidFromPortletId(
commerceChannel.getSiteGroupId(),
CommercePortletKeys.COMMERCE_CHECKOUT);
if (plid > 0) {
return true;
}
return false;
}
@Reference
private CommerceChannelService _commerceChannelService;
@Reference
private Language _language;
@Reference
private LayoutService _layoutService;
@Reference
private Portal _portal;
@Reference
private ResourcePermissionService _resourcePermissionService;
@Reference
private RoleLocalService _roleLocalService;
}