![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/cartforge.co/vendor/magento/module-customer/Controller/Adminhtml/Address/ |
<?php declare(strict_types=1); /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\Customer\Controller\Adminhtml\Address; use Magento\Backend\App\Action; use Magento\Customer\Model\CustomerRegistry; use Magento\Framework\App\Action\HttpGetActionInterface; use Magento\Framework\App\Action\HttpPostActionInterface as HttpPostActionInterface; use Magento\Framework\App\ObjectManager; use Magento\Framework\Controller\Result\Json; use Magento\Framework\DataObject; use Magento\Store\Model\StoreManagerInterface; /** * Class for validation of customer address form on admin. */ class Validate extends Action implements HttpPostActionInterface, HttpGetActionInterface { /** * Authorization level of a basic admin session * * @see _isAllowed() */ public const ADMIN_RESOURCE = 'Magento_Customer::manage'; /** * @var \Magento\Framework\Controller\Result\JsonFactory */ private $resultJsonFactory; /** * @var \Magento\Customer\Model\Metadata\FormFactory */ private $formFactory; /** * @var StoreManagerInterface */ private $storeManager; /** * @var CustomerRegistry */ private $customerRegistry; /** * @param Action\Context $context * @param \Magento\Framework\Controller\Result\JsonFactory $resultJsonFactory * @param \Magento\Customer\Model\Metadata\FormFactory $formFactory * @param StoreManagerInterface|null $storeManager * @param CustomerRegistry|null $customerRegistry */ public function __construct( Action\Context $context, \Magento\Framework\Controller\Result\JsonFactory $resultJsonFactory, \Magento\Customer\Model\Metadata\FormFactory $formFactory, ?StoreManagerInterface $storeManager = null, ?CustomerRegistry $customerRegistry = null ) { parent::__construct($context); $this->resultJsonFactory = $resultJsonFactory; $this->formFactory = $formFactory; $this->storeManager = $storeManager ?? ObjectManager::getInstance()->get(StoreManagerInterface::class); $this->customerRegistry = $customerRegistry ?? ObjectManager::getInstance()->get(CustomerRegistry::class); } /** * AJAX customer address validation action * * @return Json */ public function execute(): Json { $customerId = $this->getRequest()->getParam('parent_id'); if ($customerId) { $customerModel = $this->customerRegistry->retrieve($customerId); if ($customerModel->getStoreId()) { $this->storeManager->setCurrentStore($customerModel->getStoreId()); } } /** @var \Magento\Framework\DataObject $response */ $response = new \Magento\Framework\DataObject(); $response->setError(false); /** @var \Magento\Framework\DataObject $validatedResponse */ $validatedResponse = $this->validateCustomerAddress($response); $resultJson = $this->resultJsonFactory->create(); if ($validatedResponse->getError()) { $validatedResponse->setError(true); $validatedResponse->setMessages($response->getMessages()); } $resultJson->setData($validatedResponse); return $resultJson; } /** * Customer address validation. * * @param DataObject $response * @return \Magento\Framework\DataObject */ private function validateCustomerAddress(DataObject $response): DataObject { $addressForm = $this->formFactory->create('customer_address', 'adminhtml_customer_address'); $formData = $addressForm->extractData($this->getRequest()); $errors = $addressForm->validateData($formData); if ($errors !== true) { $messages = $response->hasMessages() ? $response->getMessages() : []; foreach ($errors as $error) { $messages[] = $error; } $response->setMessages($messages); $response->setError(true); } return $response; } }