123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328 |
- <?php
- /**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- namespace Magento\Customer\Controller\Adminhtml;
- 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\Controller\RegistryConstants;
- use Magento\Customer\Model\Address\Mapper;
- use Magento\Framework\Message\Error;
- use Magento\Framework\DataObjectFactory as ObjectFactory;
- use Magento\Framework\Api\DataObjectHelper;
- /**
- * Class Index
- *
- * @SuppressWarnings(PHPMD.ExcessiveClassComplexity)
- * @SuppressWarnings(PHPMD.CouplingBetweenObjects)
- * @SuppressWarnings(PHPMD.TooManyFields)
- * @SuppressWarnings(PHPMD.NumberOfChildren)
- */
- abstract class Index extends \Magento\Backend\App\Action
- {
- /**
- * Authorization level of a basic admin session
- *
- * @see _isAllowed()
- */
- const ADMIN_RESOURCE = 'Magento_Customer::manage';
- /**
- * @var \Magento\Framework\Validator
- * @deprecated 101.0.0
- */
- protected $_validator;
- /**
- * Core registry
- *
- * @var \Magento\Framework\Registry
- */
- protected $_coreRegistry = null;
- /**
- * @var \Magento\Framework\App\Response\Http\FileFactory
- */
- protected $_fileFactory;
- /**
- * @var \Magento\Customer\Model\CustomerFactory
- * @deprecated 101.0.0
- */
- protected $_customerFactory = null;
- /**
- * @var \Magento\Customer\Model\AddressFactory
- * @deprecated 101.0.0
- */
- protected $_addressFactory = null;
- /**
- * @var \Magento\Newsletter\Model\SubscriberFactory
- */
- protected $_subscriberFactory;
- /**
- * @var \Magento\Customer\Model\Metadata\FormFactory
- */
- protected $_formFactory;
- /**
- * @var CustomerRepositoryInterface
- */
- protected $_customerRepository;
- /**
- * @var \Magento\Customer\Helper\View
- */
- protected $_viewHelper;
- /**
- * @var \Magento\Framework\Math\Random
- * @deprecated 101.0.0
- */
- protected $_random;
- /**
- * @var ObjectFactory
- */
- protected $_objectFactory;
- /**
- * @var \Magento\Framework\Api\ExtensibleDataObjectConverter
- * @deprecated 101.0.0
- */
- protected $_extensibleDataObjectConverter;
- /**
- * @var Mapper
- */
- protected $addressMapper;
- /**
- * @var AccountManagementInterface
- */
- protected $customerAccountManagement;
- /**
- * @var AddressRepositoryInterface
- */
- protected $addressRepository;
- /**
- * @var CustomerInterfaceFactory
- */
- protected $customerDataFactory;
- /**
- * @var AddressInterfaceFactory
- */
- protected $addressDataFactory;
- /**
- * @var \Magento\Customer\Model\Customer\Mapper
- */
- protected $customerMapper;
- /**
- * @var \Magento\Framework\Reflection\DataObjectProcessor
- * @deprecated 101.0.0
- */
- protected $dataObjectProcessor;
- /**
- * @var DataObjectHelper
- */
- protected $dataObjectHelper;
- /**
- * @var \Magento\Framework\View\LayoutFactory
- * @deprecated 101.0.0
- */
- protected $layoutFactory;
- /**
- * @var \Magento\Framework\View\Result\LayoutFactory
- */
- protected $resultLayoutFactory;
- /**
- * @var \Magento\Framework\View\Result\PageFactory
- */
- protected $resultPageFactory;
- /**
- * @var \Magento\Backend\Model\View\Result\ForwardFactory
- */
- protected $resultForwardFactory;
- /**
- * @var \Magento\Framework\Controller\Result\JsonFactory
- */
- protected $resultJsonFactory;
- /**
- * Constructor
- *
- * @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 ObjectFactory $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
- * @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,
- ObjectFactory $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
- ) {
- $this->_coreRegistry = $coreRegistry;
- $this->_fileFactory = $fileFactory;
- $this->_customerFactory = $customerFactory;
- $this->_addressFactory = $addressFactory;
- $this->_formFactory = $formFactory;
- $this->_subscriberFactory = $subscriberFactory;
- $this->_viewHelper = $viewHelper;
- $this->_random = $random;
- $this->_customerRepository = $customerRepository;
- $this->_extensibleDataObjectConverter = $extensibleDataObjectConverter;
- $this->addressMapper = $addressMapper;
- $this->customerAccountManagement = $customerAccountManagement;
- $this->addressRepository = $addressRepository;
- $this->customerDataFactory = $customerDataFactory;
- $this->addressDataFactory = $addressDataFactory;
- $this->customerMapper = $customerMapper;
- $this->dataObjectProcessor = $dataObjectProcessor;
- $this->_objectFactory = $objectFactory;
- $this->dataObjectHelper = $dataObjectHelper;
- $this->layoutFactory = $layoutFactory;
- $this->resultLayoutFactory = $resultLayoutFactory;
- $this->resultPageFactory = $resultPageFactory;
- $this->resultForwardFactory = $resultForwardFactory;
- $this->resultJsonFactory = $resultJsonFactory;
- parent::__construct($context);
- }
- /**
- * Customer initialization
- *
- * @return string customer id
- */
- protected function initCurrentCustomer()
- {
- $customerId = (int)$this->getRequest()->getParam('id');
- if ($customerId) {
- $this->_coreRegistry->register(RegistryConstants::CURRENT_CUSTOMER_ID, $customerId);
- }
- return $customerId;
- }
- /**
- * Prepare customer default title
- *
- * @param \Magento\Backend\Model\View\Result\Page $resultPage
- * @return void
- */
- protected function prepareDefaultCustomerTitle(\Magento\Backend\Model\View\Result\Page $resultPage)
- {
- $resultPage->getConfig()->getTitle()->prepend(__('Customers'));
- }
- /**
- * Add errors messages to session.
- *
- * @param array|string $messages
- * @return void
- *
- * @SuppressWarnings(PHPMD.UnusedLocalVariable)
- */
- protected function _addSessionErrorMessages($messages)
- {
- $messages = (array)$messages;
- $session = $this->_getSession();
- $callback = function ($error) use ($session) {
- if (!$error instanceof Error) {
- $error = new Error($error);
- }
- $this->messageManager->addMessage($error);
- };
- array_walk_recursive($messages, $callback);
- }
- /**
- * Helper function that handles mass actions by taking in a callable for handling a single customer action.
- *
- * @param callable $singleAction A single action callable that takes a customer ID as input
- * @param int[] $customerIds Array of customer Ids to perform the action upon
- * @return int Number of customers successfully acted upon
- * @deprecated 101.0.0
- */
- protected function actUponMultipleCustomers(callable $singleAction, $customerIds)
- {
- if (!is_array($customerIds)) {
- $this->messageManager->addError(__('Please select customer(s).'));
- return 0;
- }
- $customersUpdated = 0;
- foreach ($customerIds as $customerId) {
- try {
- $singleAction($customerId);
- $customersUpdated++;
- } catch (\Exception $exception) {
- $this->messageManager->addError($exception->getMessage());
- }
- }
- return $customersUpdated;
- }
- }
|