You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
			
				
					65 lines
				
				1.4 KiB
			
		
		
			
		
	
	
					65 lines
				
				1.4 KiB
			| 
											8 years ago
										 | <?php
 | ||
|  | namespace frontend\models;
 | ||
|  | 
 | ||
|  | use yii\base\Model;
 | ||
|  | use yii\base\InvalidParamException;
 | ||
|  | use common\models\User;
 | ||
|  | 
 | ||
|  | /**
 | ||
|  |  * Password reset form
 | ||
|  |  */
 | ||
|  | class ResetPasswordForm extends Model
 | ||
|  | {
 | ||
|  |     public $password;
 | ||
|  | 
 | ||
|  |     /**
 | ||
|  |      * @var \common\models\User
 | ||
|  |      */
 | ||
|  |     private $_user;
 | ||
|  | 
 | ||
|  | 
 | ||
|  |     /**
 | ||
|  |      * Creates a form model given a token.
 | ||
|  |      *
 | ||
|  |      * @param string $token
 | ||
|  |      * @param array $config name-value pairs that will be used to initialize the object properties
 | ||
|  |      * @throws \yii\base\InvalidParamException if token is empty or not valid
 | ||
|  |      */
 | ||
|  |     public function __construct($token, $config = [])
 | ||
|  |     {
 | ||
|  |         if (empty($token) || !is_string($token)) {
 | ||
|  |             throw new InvalidParamException('Password reset token cannot be blank.');
 | ||
|  |         }
 | ||
|  |         $this->_user = User::findByPasswordResetToken($token);
 | ||
|  |         if (!$this->_user) {
 | ||
|  |             throw new InvalidParamException('Wrong password reset token.');
 | ||
|  |         }
 | ||
|  |         parent::__construct($config);
 | ||
|  |     }
 | ||
|  | 
 | ||
|  |     /**
 | ||
|  |      * @inheritdoc
 | ||
|  |      */
 | ||
|  |     public function rules()
 | ||
|  |     {
 | ||
|  |         return [
 | ||
|  |             ['password', 'required'],
 | ||
|  |             ['password', 'string', 'min' => 6],
 | ||
|  |         ];
 | ||
|  |     }
 | ||
|  | 
 | ||
|  |     /**
 | ||
|  |      * Resets password.
 | ||
|  |      *
 | ||
|  |      * @return bool if password was reset.
 | ||
|  |      */
 | ||
|  |     public function resetPassword()
 | ||
|  |     {
 | ||
|  |         $user = $this->_user;
 | ||
|  |         $user->setPassword($this->password);
 | ||
|  |         $user->removePasswordResetToken();
 | ||
|  | 
 | ||
|  |         return $user->save(false);
 | ||
|  |     }
 | ||
|  | }
 |