![]() 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/old/vendor/magento/module-customer/Model/ForgotPasswordToken/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ declare(strict_types=1); namespace Magento\Customer\Model\ForgotPasswordToken; use Magento\Customer\Api\CustomerRepositoryInterface; use Magento\Customer\Api\Data\CustomerInterface; use Magento\Framework\Api\SearchCriteriaBuilder; use Magento\Framework\Exception\NoSuchEntityException; use Magento\Framework\Exception\State\ExpiredException; use Magento\Framework\Phrase; /** * Get Customer By reset password token * @SuppressWarnings(PHPMD.LongVariable) * @deprecated Rp Tokens cannot be looked up directly */ class GetCustomerByToken { /** * @var \Magento\Customer\Api\CustomerRepositoryInterface */ private $customerRepository; /** * @var \Magento\Framework\Api\SearchCriteriaBuilder */ private $searchCriteriaBuilder; /** * ForgotPassword constructor. * * @param \Magento\Customer\Api\CustomerRepositoryInterface $customerRepository * @param \Magento\Framework\Api\SearchCriteriaBuilder $searchCriteriaBuilder */ public function __construct( CustomerRepositoryInterface $customerRepository, SearchCriteriaBuilder $searchCriteriaBuilder ) { $this->customerRepository = $customerRepository; $this->searchCriteriaBuilder = $searchCriteriaBuilder; } /** * Get customer by rp_token * * @param string $resetPasswordToken * * @return \Magento\Customer\Api\Data\CustomerInterface * @throws ExpiredException * @throws NoSuchEntityException * @throws \Magento\Framework\Exception\LocalizedException */ public function execute(string $resetPasswordToken): CustomerInterface { $this->searchCriteriaBuilder->addFilter( 'rp_token', $resetPasswordToken ); $this->searchCriteriaBuilder->setPageSize(1); $found = $this->customerRepository->getList( $this->searchCriteriaBuilder->create() ); if ($found->getTotalCount() > 1) { //Failed to generated unique RP token throw new ExpiredException( new Phrase('Reset password token expired.') ); } if ($found->getTotalCount() === 0) { //Customer with such token not found. throw new NoSuchEntityException( new Phrase( 'No such entity with rp_token = %value', [ 'value' => $resetPasswordToken ] ) ); } //Unique customer found. return $found->getItems()[0]; } }