mirror of
https://github.com/bdnugget/magento2.git
synced 2026-11-07 09:17:35 +00:00
84 lines
2.1 KiB
PHP
84 lines
2.1 KiB
PHP
<?php
|
|
/**
|
|
* Copyright © Magento, Inc. All rights reserved.
|
|
* See COPYING.txt for license details.
|
|
*/
|
|
|
|
namespace Magento\User\Controller\Adminhtml;
|
|
|
|
use Magento\Framework\Encryption\Helper\Security;
|
|
use Magento\Backend\App\AbstractAction;
|
|
use Magento\Backend\App\Action\Context;
|
|
use Magento\User\Model\UserFactory;
|
|
use Magento\Framework\Exception\LocalizedException;
|
|
|
|
/**
|
|
* \Magento\User Auth controller
|
|
*/
|
|
abstract class Auth extends AbstractAction
|
|
{
|
|
/**
|
|
* User model factory
|
|
*
|
|
* @var UserFactory
|
|
*/
|
|
protected $_userFactory;
|
|
|
|
/**
|
|
* Construct
|
|
*
|
|
* @param Context $context
|
|
* @param UserFactory $userFactory
|
|
*/
|
|
public function __construct(
|
|
Context $context,
|
|
UserFactory $userFactory
|
|
) {
|
|
parent::__construct($context);
|
|
$this->_userFactory = $userFactory;
|
|
}
|
|
|
|
/**
|
|
* Check if password reset token is valid
|
|
*
|
|
* @param int $userId
|
|
* @param string $resetPasswordToken
|
|
* @return void
|
|
* @throws LocalizedException
|
|
*/
|
|
protected function _validateResetPasswordLinkToken($userId, $resetPasswordToken)
|
|
{
|
|
if (!is_int(
|
|
$userId
|
|
) || !is_string(
|
|
$resetPasswordToken
|
|
) || empty($resetPasswordToken) || empty($userId) || $userId < 0
|
|
) {
|
|
throw new LocalizedException(__('Please correct the password reset token.'));
|
|
}
|
|
|
|
/** @var $user \Magento\User\Model\User */
|
|
$user = $this->_userFactory->create()->load($userId);
|
|
if (!$user->getId()) {
|
|
throw new LocalizedException(
|
|
__('Please specify the correct account and try again.')
|
|
);
|
|
}
|
|
|
|
$userToken = $user->getRpToken();
|
|
if (!Security::compareStrings($userToken, $resetPasswordToken) || $user->isResetPasswordLinkTokenExpired()) {
|
|
throw new LocalizedException(__('Your password reset link has expired.'));
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Check if user has permissions to access this controller
|
|
*
|
|
* @return bool
|
|
*/
|
|
protected function _isAllowed()
|
|
{
|
|
return true;
|
|
}
|
|
}
|