From 007a89114b9d67b1ecfe1646f85447c1ccb28506 Mon Sep 17 00:00:00 2001 From: Lukasz Bajsarowicz Date: Mon, 9 Mar 2020 17:34:38 +0100 Subject: [PATCH] DEPRECATED: AbstractAccount for Magento_Customer controllers --- .../Customer/Controller/AbstractAccount.php | 4 ++-- .../Customer/Controller/Plugin/Account.php | 23 ++++++++++++------- app/code/Magento/Customer/etc/frontend/di.xml | 2 +- 3 files changed, 18 insertions(+), 11 deletions(-) diff --git a/app/code/Magento/Customer/Controller/AbstractAccount.php b/app/code/Magento/Customer/Controller/AbstractAccount.php index 21611329ed9bc..aa0eca1423c17 100644 --- a/app/code/Magento/Customer/Controller/AbstractAccount.php +++ b/app/code/Magento/Customer/Controller/AbstractAccount.php @@ -9,9 +9,9 @@ use Magento\Framework\App\Action\Action; /** - * Class AbstractAccount - * @package Magento\Customer\Controller * @SuppressWarnings(PHPMD.NumberOfChildren) + * @deprecated 2.4.0 + * @see \Magento\Customer\Controller\AccountInterface */ abstract class AbstractAccount extends Action implements AccountInterface { diff --git a/app/code/Magento/Customer/Controller/Plugin/Account.php b/app/code/Magento/Customer/Controller/Plugin/Account.php index 179da148e7f78..5fc65eb845563 100644 --- a/app/code/Magento/Customer/Controller/Plugin/Account.php +++ b/app/code/Magento/Customer/Controller/Plugin/Account.php @@ -3,13 +3,15 @@ * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ +declare(strict_types=1); + namespace Magento\Customer\Controller\Plugin; +use Magento\Customer\Controller\AccountInterface; use Magento\Customer\Model\Session; use Magento\Framework\App\ActionInterface; use Magento\Framework\App\RequestInterface; use Magento\Framework\App\ResponseInterface; -use Magento\Framework\App\Action\AbstractAction; use Magento\Framework\Controller\ResultInterface; class Account @@ -23,29 +25,35 @@ class Account * @var array */ private $allowedActions = []; + /** + * @var RequestInterface + */ + private $request; /** + * @param RequestInterface $request * @param Session $customerSession * @param array $allowedActions List of actions that are allowed for not authorized users */ public function __construct( + RequestInterface $request, Session $customerSession, array $allowedActions = [] ) { $this->session = $customerSession; $this->allowedActions = $allowedActions; + $this->request = $request; } /** * Dispatch actions allowed for not authorized users * - * @param AbstractAction $subject - * @param RequestInterface $request + * @param AccountInterface $subject * @return void */ - public function beforeDispatch(AbstractAction $subject, RequestInterface $request) + public function beforeExecute(AccountInterface $subject) { - $action = strtolower($request->getActionName()); + $action = strtolower($this->request->getActionName()); $pattern = '/^(' . implode('|', $this->allowedActions) . ')$/i'; if (!preg_match($pattern, $action)) { @@ -60,13 +68,12 @@ public function beforeDispatch(AbstractAction $subject, RequestInterface $reques /** * Remove No-referer flag from customer session * - * @param AbstractAction $subject + * @param AccountInterface $subject * @param ResponseInterface|ResultInterface $result - * @param RequestInterface $request * @return ResponseInterface|ResultInterface * @SuppressWarnings(PHPMD.UnusedFormalParameter) */ - public function afterDispatch(AbstractAction $subject, $result, RequestInterface $request) + public function afterExecute(AccountInterface $subject, $result) { $this->session->unsNoReferer(false); return $result; diff --git a/app/code/Magento/Customer/etc/frontend/di.xml b/app/code/Magento/Customer/etc/frontend/di.xml index a479d0d2af328..8867042cc6dc9 100644 --- a/app/code/Magento/Customer/etc/frontend/di.xml +++ b/app/code/Magento/Customer/etc/frontend/di.xml @@ -51,7 +51,7 @@ - +