\Yii::t('core', 'Old password'), 'newPassword' => \Yii::t('core', 'New password'), 'newPasswordRepeat' => \Yii::t('core', 'New password repeat'), ]; } /** * @inheritdoc */ public function rules() { return [ [ [ 'oldPassword', 'newPassword', 'newPasswordRepeat', ], 'required', ], [ [ 'oldPassword', 'newPassword', 'newPasswordRepeat', ], 'string', 'length' => [ 6, 255, ], ], [ [ 'newPasswordRepeat' ], 'compare', 'compareAttribute' => 'newPassword', ], ]; } /** * Validate old password. * * @return bool True if password valid, otherwise false */ public function validatePassword() { /** * @var User $user */ $user = \Yii::$app->user->identity; $result = $user->validatePassword($this->oldPassword); if (!$result) { $this->addError('oldPassword', \Yii::t('core', 'Provided old password doesn\'t match real password.')); } return $result; } /** * Save new password * * @return bool True if successfully saved */ public function saveChanges() { /** * @var User $user */ $user = \Yii::$app->user->identity; $user->setPassword($this->newPassword); $user->generateAuthKey(); return $user->save(); } }