123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154 |
- <?php
- /**
- *
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- namespace Magento\Customer\Controller\Adminhtml\Customer;
- use Magento\Framework\App\Action\HttpGetActionInterface;
- use Magento\Integration\Api\CustomerTokenServiceInterface;
- use Magento\Customer\Api\AccountManagementInterface;
- use Magento\Customer\Api\AddressRepositoryInterface;
- use Magento\Customer\Api\CustomerRepositoryInterface;
- use Magento\Customer\Api\Data\AddressInterfaceFactory;
- use Magento\Customer\Api\Data\CustomerInterfaceFactory;
- use Magento\Customer\Model\Address\Mapper;
- use Magento\Framework\DataObjectFactory;
- use Magento\Framework\Api\DataObjectHelper;
- /**
- * Class to invalidate tokens for customers
- *
- * @SuppressWarnings(PHPMD.ExcessiveClassComplexity)
- * @SuppressWarnings(PHPMD.CouplingBetweenObjects)
- * @SuppressWarnings(PHPMD.TooManyFields)
- * @SuppressWarnings(PHPMD.NumberOfChildren)
- */
- class InvalidateToken extends \Magento\Customer\Controller\Adminhtml\Index implements HttpGetActionInterface
- {
- /**
- * Authorization level of a basic admin session
- *
- * @see _isAllowed()
- */
- const ADMIN_RESOURCE = 'Magento_Customer::invalidate_tokens';
- /**
- * @var CustomerTokenServiceInterface
- */
- protected $tokenService;
- /**
- * @param \Magento\Backend\App\Action\Context $context
- * @param \Magento\Framework\Registry $coreRegistry
- * @param \Magento\Framework\App\Response\Http\FileFactory $fileFactory
- * @param \Magento\Customer\Model\CustomerFactory $customerFactory
- * @param \Magento\Customer\Model\AddressFactory $addressFactory
- * @param \Magento\Customer\Model\Metadata\FormFactory $formFactory
- * @param \Magento\Newsletter\Model\SubscriberFactory $subscriberFactory
- * @param \Magento\Customer\Helper\View $viewHelper
- * @param \Magento\Framework\Math\Random $random
- * @param CustomerRepositoryInterface $customerRepository
- * @param \Magento\Framework\Api\ExtensibleDataObjectConverter $extensibleDataObjectConverter
- * @param Mapper $addressMapper
- * @param AccountManagementInterface $customerAccountManagement
- * @param AddressRepositoryInterface $addressRepository
- * @param CustomerInterfaceFactory $customerDataFactory
- * @param AddressInterfaceFactory $addressDataFactory
- * @param \Magento\Customer\Model\Customer\Mapper $customerMapper
- * @param \Magento\Framework\Reflection\DataObjectProcessor $dataObjectProcessor
- * @param DataObjectHelper $dataObjectHelper
- * @param DataObjectFactory $objectFactory
- * @param \Magento\Framework\View\LayoutFactory $layoutFactory
- * @param \Magento\Framework\View\Result\LayoutFactory $resultLayoutFactory
- * @param \Magento\Framework\View\Result\PageFactory $resultPageFactory
- * @param \Magento\Backend\Model\View\Result\ForwardFactory $resultForwardFactory
- * @param \Magento\Framework\Controller\Result\JsonFactory $resultJsonFactory
- * @param CustomerTokenServiceInterface $tokenService
- *
- * @SuppressWarnings(PHPMD.ExcessiveParameterList)
- */
- public function __construct(
- \Magento\Backend\App\Action\Context $context,
- \Magento\Framework\Registry $coreRegistry,
- \Magento\Framework\App\Response\Http\FileFactory $fileFactory,
- \Magento\Customer\Model\CustomerFactory $customerFactory,
- \Magento\Customer\Model\AddressFactory $addressFactory,
- \Magento\Customer\Model\Metadata\FormFactory $formFactory,
- \Magento\Newsletter\Model\SubscriberFactory $subscriberFactory,
- \Magento\Customer\Helper\View $viewHelper,
- \Magento\Framework\Math\Random $random,
- CustomerRepositoryInterface $customerRepository,
- \Magento\Framework\Api\ExtensibleDataObjectConverter $extensibleDataObjectConverter,
- Mapper $addressMapper,
- AccountManagementInterface $customerAccountManagement,
- AddressRepositoryInterface $addressRepository,
- CustomerInterfaceFactory $customerDataFactory,
- AddressInterfaceFactory $addressDataFactory,
- \Magento\Customer\Model\Customer\Mapper $customerMapper,
- \Magento\Framework\Reflection\DataObjectProcessor $dataObjectProcessor,
- DataObjectHelper $dataObjectHelper,
- DataObjectFactory $objectFactory,
- \Magento\Framework\View\LayoutFactory $layoutFactory,
- \Magento\Framework\View\Result\LayoutFactory $resultLayoutFactory,
- \Magento\Framework\View\Result\PageFactory $resultPageFactory,
- \Magento\Backend\Model\View\Result\ForwardFactory $resultForwardFactory,
- \Magento\Framework\Controller\Result\JsonFactory $resultJsonFactory,
- CustomerTokenServiceInterface $tokenService
- ) {
- $this->tokenService = $tokenService;
- parent::__construct(
- $context,
- $coreRegistry,
- $fileFactory,
- $customerFactory,
- $addressFactory,
- $formFactory,
- $subscriberFactory,
- $viewHelper,
- $random,
- $customerRepository,
- $extensibleDataObjectConverter,
- $addressMapper,
- $customerAccountManagement,
- $addressRepository,
- $customerDataFactory,
- $addressDataFactory,
- $customerMapper,
- $dataObjectProcessor,
- $dataObjectHelper,
- $objectFactory,
- $layoutFactory,
- $resultLayoutFactory,
- $resultPageFactory,
- $resultForwardFactory,
- $resultJsonFactory
- );
- }
- /**
- * Reset customer's tokens handler
- *
- * @return \Magento\Backend\Model\View\Result\Redirect
- */
- public function execute()
- {
- $resultRedirect = $this->resultRedirectFactory->create();
- if ($customerId = $this->getRequest()->getParam('customer_id')) {
- try {
- $this->tokenService->revokeCustomerAccessToken($customerId);
- $this->messageManager->addSuccess(__('You have revoked the customer\'s tokens.'));
- $resultRedirect->setPath('customer/index/edit', ['id' => $customerId, '_current' => true]);
- } catch (\Exception $e) {
- $this->messageManager->addError($e->getMessage());
- $resultRedirect->setPath('customer/index/edit', ['id' => $customerId, '_current' => true]);
- }
- } else {
- $this->messageManager->addError(__('We can\'t find a customer to revoke.'));
- $resultRedirect->setPath('customer/index/index');
- }
- return $resultRedirect;
- }
- }
|