1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- <?php
- /**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- namespace Magento\Customer\Controller\Adminhtml\Index;
- use Magento\Framework\App\Action\HttpGetActionInterface;
- use Magento\Framework\Exception\NoSuchEntityException;
- use Magento\Framework\Exception\SecurityViolationException;
- /**
- * Reset password controller
- *
- * @package Magento\Customer\Controller\Adminhtml\Index
- */
- class ResetPassword extends \Magento\Customer\Controller\Adminhtml\Index implements HttpGetActionInterface
- {
- /**
- * Authorization level of a basic admin session
- *
- * @see _isAllowed()
- */
- const ADMIN_RESOURCE = 'Magento_Customer::reset_password';
- /**
- * Reset password handler
- *
- * @return \Magento\Backend\Model\View\Result\Redirect
- */
- public function execute()
- {
- $resultRedirect = $this->resultRedirectFactory->create();
- $customerId = (int)$this->getRequest()->getParam('customer_id', 0);
- if (!$customerId) {
- $resultRedirect->setPath('customer/index');
- return $resultRedirect;
- }
- try {
- $customer = $this->_customerRepository->getById($customerId);
- $this->customerAccountManagement->initiatePasswordReset(
- $customer->getEmail(),
- \Magento\Customer\Model\AccountManagement::EMAIL_REMINDER,
- $customer->getWebsiteId()
- );
- $this->messageManager->addSuccess(__('The customer will receive an email with a link to reset password.'));
- } catch (NoSuchEntityException $exception) {
- $resultRedirect->setPath('customer/index');
- return $resultRedirect;
- } catch (\Magento\Framework\Validator\Exception $exception) {
- $messages = $exception->getMessages(\Magento\Framework\Message\MessageInterface::TYPE_ERROR);
- if (!count($messages)) {
- $messages = $exception->getMessage();
- }
- $this->_addSessionErrorMessages($messages);
- } catch (SecurityViolationException $exception) {
- $this->messageManager->addErrorMessage($exception->getMessage());
- } catch (\Exception $exception) {
- $this->messageManager->addException(
- $exception,
- __('Something went wrong while resetting customer password.')
- );
- }
- $resultRedirect->setPath(
- 'customer/*/edit',
- ['id' => $customerId, '_current' => true]
- );
- return $resultRedirect;
- }
- }
|