![]() 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\Customer\Api\AccountManagementInterface; use Magento\Customer\Api\CustomerRepositoryInterface; use Magento\Customer\Model\Session; use Magento\Framework\App\Action\Context; use Magento\Framework\App\Action\HttpPostActionInterface; use Magento\Framework\Exception\InputException; use Magento\Customer\Model\Customer\CredentialsValidator; /** * Customer reset password controller */ class ResetPasswordPost extends \Magento\Customer\Controller\AbstractAccount implements HttpPostActionInterface { /** * @var \Magento\Customer\Api\AccountManagementInterface */ protected $accountManagement; /** * @var \Magento\Customer\Api\CustomerRepositoryInterface */ protected $customerRepository; /** * @var Session */ protected $session; /** * @param Context $context * @param Session $customerSession * @param AccountManagementInterface $accountManagement * @param CustomerRepositoryInterface $customerRepository * @param CredentialsValidator|null $credentialsValidator * * @SuppressWarnings(PHPMD.UnusedFormalParameter) */ public function __construct( Context $context, Session $customerSession, AccountManagementInterface $accountManagement, CustomerRepositoryInterface $customerRepository, CredentialsValidator $credentialsValidator = null ) { $this->session = $customerSession; $this->accountManagement = $accountManagement; $this->customerRepository = $customerRepository; parent::__construct($context); } /** * Reset forgotten password * * Used to handle data received from reset forgotten password form * * @return \Magento\Framework\Controller\Result\Redirect */ public function execute() { /** @var \Magento\Framework\Controller\Result\Redirect $resultRedirect */ $resultRedirect = $this->resultRedirectFactory->create(); $resetPasswordToken = (string)$this->getRequest()->getQuery('token'); $customerId = (string)$this->getRequest()->getQuery('id'); $password = (string)$this->getRequest()->getPost('password'); $passwordConfirmation = (string)$this->getRequest()->getPost('password_confirmation'); $email = null; if ($password !== $passwordConfirmation) { $this->messageManager->addErrorMessage(__("New Password and Confirm New Password values didn't match.")); $resultRedirect->setPath('*/*/createPassword', ['token' => $resetPasswordToken]); return $resultRedirect; } if (iconv_strlen($password) <= 0) { $this->messageManager->addErrorMessage(__('Please enter a new password.')); $resultRedirect->setPath('*/*/createPassword', ['token' => $resetPasswordToken]); return $resultRedirect; } if ($customerId && $this->customerRepository->getById($customerId)) { $email = $this->customerRepository->getById($customerId)->getEmail(); } try { $this->accountManagement->resetPassword( $email, $resetPasswordToken, $password ); // logout from current session if password changed. if ($this->session->isLoggedIn()) { $this->session->logout(); $this->session->start(); } $this->session->unsRpToken(); $this->session->unsRpCustomerId(); $this->messageManager->addSuccessMessage(__('You updated your password.')); $resultRedirect->setPath('*/*/login'); return $resultRedirect; } catch (InputException $e) { $this->messageManager->addErrorMessage($e->getMessage()); foreach ($e->getErrors() as $error) { $this->messageManager->addErrorMessage($error->getMessage()); } } catch (\Exception $exception) { $this->messageManager->addErrorMessage(__('Something went wrong while saving the new password.')); } $resultRedirect->setPath('*/*/createPassword', ['token' => $resetPasswordToken]); return $resultRedirect; } }