* @copyright (c), Thread */ class ResetPasswordForm extends \yii\base\Model { public $password; /** * @var User */ private $_user; protected $_password_min_length; /** * */ public function init() { parent::init(); /** * @var $module \frontend\modules\user\User */ $module = Yii::$app->getModule('user'); $this->_password_min_length = $module->password_min_length; } /** * @return array */ public function rules() { return [ [['password'], 'required'], [['password'], 'string', 'min' => $this->_password_min_length], ]; } /** * @return array */ public function attributeLabels() { return [ 'password' => Yii::t('user', 'Password'), ]; } /** * @return array */ public function scenarios() { return [ 'setPassword' => ['password'] ]; } /** * @param $token * @return User|null */ public function initUserByToken($token) { $this->_user = (!empty($token) && is_string($token)) ? User::findByPasswordResetToken($token) : null; return $this->_user; } /** * @return bool */ public function setPassword() { $user = $this->_user; if ($user) { $user->setScenario('setPassword'); $user->setPassword($this->password); $user->removePasswordResetToken(); return $user->save(false); } return false; } }