userContext = $userContext; } /** * @param ResourceOrder $subject * @param ResourceOrder $result * @param \Magento\Framework\Model\AbstractModel $order * @return ResourceOrder * @throws NoSuchEntityException * @SuppressWarnings(PHPMD.UnusedFormalParameter) */ public function afterLoad( ResourceOrder $subject, ResourceOrder $result, \Magento\Framework\Model\AbstractModel $order ) { if ($order instanceof Order) { if (!$this->isAllowed($order)) { throw NoSuchEntityException::singleField('orderId', $order->getId()); } } return $result; } /** * Checks if order is allowed for current customer * * @param \Magento\Sales\Model\Order $order * @return bool */ protected function isAllowed(Order $order) { return $this->userContext->getUserType() == UserContextInterface::USER_TYPE_CUSTOMER ? $order->getCustomerId() == $this->userContext->getUserId() : true; } }