Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
CreatePassword.php
Go to the documentation of this file.
1 <?php
7 
13 
20 {
24  protected $accountManagement;
25 
29  protected $session;
30 
34  protected $resultPageFactory;
35 
42  public function __construct(
43  Context $context,
44  Session $customerSession,
47  ) {
48  $this->session = $customerSession;
49  $this->resultPageFactory = $resultPageFactory;
50  $this->accountManagement = $accountManagement;
51  parent::__construct($context);
52  }
53 
59  public function execute()
60  {
61  $resetPasswordToken = (string)$this->getRequest()->getParam('token');
62  $isDirectLink = $resetPasswordToken != '';
63  if (!$isDirectLink) {
64  $resetPasswordToken = (string)$this->session->getRpToken();
65  }
66 
67  try {
68  $this->accountManagement->validateResetPasswordLinkToken(null, $resetPasswordToken);
69 
70  if ($isDirectLink) {
71  $this->session->setRpToken($resetPasswordToken);
72  $resultRedirect = $this->resultRedirectFactory->create();
73  $resultRedirect->setPath('*/*/createpassword');
74 
75  return $resultRedirect;
76  } else {
78  $resultPage = $this->resultPageFactory->create();
79  $resultPage->getLayout()
80  ->getBlock('resetPassword')
81  ->setResetPasswordLinkToken($resetPasswordToken);
82 
83  return $resultPage;
84  }
85  } catch (\Exception $exception) {
86  $this->messageManager->addError(__('Your password reset link has expired.'));
88  $resultRedirect = $this->resultRedirectFactory->create();
89  $resultRedirect->setPath('*/*/forgotpassword');
90  return $resultRedirect;
91  }
92  }
93 }
__()
Definition: __.php:13
__construct(Context $context, Session $customerSession, PageFactory $resultPageFactory, AccountManagementInterface $accountManagement)