Skip to content

Commit 5340196

Browse files
dsitubrianchandotcom
authored andcommitted
LPD-16000 Make sure to check supplier order
1 parent 75c39ea commit 5340196

File tree

2 files changed

+34
-12
lines changed

2 files changed

+34
-12
lines changed

modules/apps/commerce/commerce-service/src/main/java/com/liferay/commerce/internal/security/permission/resource/CommerceOrderModelResourcePermissionLogic.java

Lines changed: 31 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
import com.liferay.commerce.model.CommerceOrder;
1515
import com.liferay.commerce.product.model.CommerceChannel;
1616
import com.liferay.commerce.product.service.CommerceChannelLocalService;
17+
import com.liferay.commerce.service.CommerceOrderLocalService;
1718
import com.liferay.petra.string.StringPool;
1819
import com.liferay.portal.configuration.module.configuration.ConfigurationProvider;
1920
import com.liferay.portal.kernel.dao.orm.QueryUtil;
@@ -41,6 +42,7 @@ public class CommerceOrderModelResourcePermissionLogic
4142
public CommerceOrderModelResourcePermissionLogic(
4243
AccountEntryLocalService accountEntryLocalService,
4344
CommerceChannelLocalService commerceChannelLocalService,
45+
CommerceOrderLocalService commerceOrderLocalService,
4446
ConfigurationProvider configurationProvider,
4547
GroupLocalService groupLocalService,
4648
PortletResourcePermission portletResourcePermission,
@@ -49,6 +51,7 @@ public CommerceOrderModelResourcePermissionLogic(
4951

5052
_accountEntryLocalService = accountEntryLocalService;
5153
_commerceChannelLocalService = commerceChannelLocalService;
54+
_commerceOrderLocalService = commerceOrderLocalService;
5255
_configurationProvider = configurationProvider;
5356
_groupLocalService = groupLocalService;
5457
_portletResourcePermission = portletResourcePermission;
@@ -476,23 +479,17 @@ private boolean _hasRoleAccountSupplier(
476479
PermissionChecker permissionChecker, CommerceOrder commerceOrder)
477480
throws PortalException {
478481

479-
CommerceChannel commerceChannel =
480-
_commerceChannelLocalService.fetchCommerceChannelByGroupClassPK(
481-
commerceOrder.getGroupId());
482-
483-
if ((commerceChannel != null) &&
484-
(commerceChannel.getAccountEntryId() == 0)) {
485-
486-
return false;
487-
}
488-
489482
List<AccountEntry> accountEntries =
490483
_accountEntryLocalService.getUserAccountEntries(
491484
permissionChecker.getUserId(), 0L, StringPool.BLANK,
492485
new String[] {AccountConstants.ACCOUNT_ENTRY_TYPE_SUPPLIER},
493486
QueryUtil.ALL_POS, QueryUtil.ALL_POS);
494487

495488
for (AccountEntry accountEntry : accountEntries) {
489+
CommerceChannel commerceChannel =
490+
_commerceChannelLocalService.fetchCommerceChannelByGroupClassPK(
491+
commerceOrder.getGroupId());
492+
496493
if ((accountEntry.getAccountEntryId() ==
497494
commerceChannel.getAccountEntryId()) &&
498495
_userGroupRoleLocalService.hasUserGroupRole(
@@ -502,13 +499,37 @@ private boolean _hasRoleAccountSupplier(
502499

503500
return true;
504501
}
502+
503+
for (long commerceOrderIds :
504+
commerceOrder.getSupplierCommerceOrderIds()) {
505+
506+
CommerceOrder supplierCommerceOrder =
507+
_commerceOrderLocalService.getCommerceOrder(
508+
commerceOrderIds);
509+
510+
commerceChannel =
511+
_commerceChannelLocalService.
512+
fetchCommerceChannelByGroupClassPK(
513+
supplierCommerceOrder.getGroupId());
514+
515+
if ((accountEntry.getAccountEntryId() ==
516+
commerceChannel.getAccountEntryId()) &&
517+
_userGroupRoleLocalService.hasUserGroupRole(
518+
permissionChecker.getUserId(),
519+
accountEntry.getAccountEntryGroupId(),
520+
AccountRoleConstants.ROLE_NAME_ACCOUNT_SUPPLIER)) {
521+
522+
return true;
523+
}
524+
}
505525
}
506526

507527
return false;
508528
}
509529

510530
private final AccountEntryLocalService _accountEntryLocalService;
511531
private final CommerceChannelLocalService _commerceChannelLocalService;
532+
private final CommerceOrderLocalService _commerceOrderLocalService;
512533
private final ConfigurationProvider _configurationProvider;
513534
private final GroupLocalService _groupLocalService;
514535
private final PortletResourcePermission _portletResourcePermission;

modules/apps/commerce/commerce-service/src/main/java/com/liferay/commerce/internal/security/permission/resource/CommerceOrderModelResourcePermissionWrapper.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,8 +49,9 @@ public class CommerceOrderModelResourcePermissionWrapper
4949
consumer.accept(
5050
new CommerceOrderModelResourcePermissionLogic(
5151
_accountEntryLocalService, _commerceChannelLocalService,
52-
_configurationProvider, _groupLocalService,
53-
_portletResourcePermission, _userGroupRoleLocalService,
52+
_commerceOrderLocalService, _configurationProvider,
53+
_groupLocalService, _portletResourcePermission,
54+
_userGroupRoleLocalService,
5455
_workflowDefinitionLinkLocalService));
5556
});
5657
}

0 commit comments

Comments
 (0)