![]() 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/Account/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\Customer\Controller\Account; use Magento\Framework\App\Action\HttpPostActionInterface as HttpPostActionInterface; use Magento\Customer\Api\AccountManagementInterface; use Magento\Customer\Model\AccountManagement; use Magento\Customer\Model\Session; use Magento\Framework\App\Action\Context; use Magento\Framework\Controller\Result\Redirect; use Magento\Framework\Escaper; use Magento\Framework\Exception\NoSuchEntityException; use Magento\Framework\Exception\SecurityViolationException; use Magento\Framework\Validator\EmailAddress; use Magento\Framework\Validator\ValidatorChain; /** * ForgotPasswordPost controller * @SuppressWarnings(PHPMD.CouplingBetweenObjects) */ class ForgotPasswordPost extends \Magento\Customer\Controller\AbstractAccount implements HttpPostActionInterface { /** * @var \Magento\Customer\Api\AccountManagementInterface */ protected $customerAccountManagement; /** * @var \Magento\Framework\Escaper */ protected $escaper; /** * @var Session */ protected $session; /** * @param Context $context * @param Session $customerSession * @param AccountManagementInterface $customerAccountManagement * @param Escaper $escaper */ public function __construct( Context $context, Session $customerSession, AccountManagementInterface $customerAccountManagement, Escaper $escaper ) { $this->session = $customerSession; $this->customerAccountManagement = $customerAccountManagement; $this->escaper = $escaper; parent::__construct($context); } /** * Forgot customer password action * * @return Redirect */ public function execute() { /** @var Redirect $resultRedirect */ $resultRedirect = $this->resultRedirectFactory->create(); $email = (string)$this->getRequest()->getPost('email'); if ($email) { if (!ValidatorChain::is($email, EmailAddress::class)) { $this->session->setForgottenEmail($email); $this->messageManager->addErrorMessage( __('The email address is incorrect. Verify the email address and try again.') ); return $resultRedirect->setPath('*/*/forgotpassword'); } try { $this->customerAccountManagement->initiatePasswordReset( $email, AccountManagement::EMAIL_RESET ); // phpcs:ignore Magento2.CodeAnalysis.EmptyBlock.DetectedCatch } catch (NoSuchEntityException $exception) { // Do nothing, we don't want anyone to use this action to determine which email accounts are registered. } catch (SecurityViolationException $exception) { $this->messageManager->addErrorMessage($exception->getMessage()); return $resultRedirect->setPath('*/*/forgotpassword'); } catch (\Exception $exception) { $this->messageManager->addExceptionMessage( $exception, __('We\'re unable to send the password reset email.') ); return $resultRedirect->setPath('*/*/forgotpassword'); } $this->messageManager->addSuccessMessage($this->getSuccessMessage($email)); return $resultRedirect->setPath('*/*/'); } else { $this->messageManager->addErrorMessage(__('Please enter your email.')); return $resultRedirect->setPath('*/*/forgotpassword'); } } /** * Retrieve success message * * @param string $email * @return \Magento\Framework\Phrase */ protected function getSuccessMessage($email) { return __( 'If there is an account associated with %1 you will receive an email with a link to reset your password.', $this->escaper->escapeHtml($email) ); } }