1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- <?php
- /**
- *
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- namespace Magento\Sales\Controller\AbstractController;
- class OrderViewAuthorization implements OrderViewAuthorizationInterface
- {
- /**
- * @var \Magento\Customer\Model\Session
- */
- protected $customerSession;
- /**
- * @var \Magento\Sales\Model\Order\Config
- */
- protected $orderConfig;
- /**
- * @param \Magento\Customer\Model\Session $customerSession
- * @param \Magento\Sales\Model\Order\Config $orderConfig
- */
- public function __construct(
- \Magento\Customer\Model\Session $customerSession,
- \Magento\Sales\Model\Order\Config $orderConfig
- ) {
- $this->customerSession = $customerSession;
- $this->orderConfig = $orderConfig;
- }
- /**
- * {@inheritdoc}
- */
- public function canView(\Magento\Sales\Model\Order $order)
- {
- $customerId = $this->customerSession->getCustomerId();
- $availableStatuses = $this->orderConfig->getVisibleOnFrontStatuses();
- if ($order->getId()
- && $order->getCustomerId()
- && $order->getCustomerId() == $customerId
- && in_array($order->getStatus(), $availableStatuses, true)
- ) {
- return true;
- }
- return false;
- }
- }
|