|
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- <?php
- namespace frontend\models;
-
- use common\models\User;
- use yii\base\InvalidParamException;
- use yii\base\Model;
- use Yii;
-
- /**
- * 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 boolean if password was reset.
- */
- public function resetPassword()
- {
- $user = $this->_user;
- $user->setPassword($this->password);
- $user->removePasswordResetToken();
-
- return $user->save();
- }
- }
|