Files
xk-api-yii/member/models/forms/UpdatePassForm.php
2024-09-19 11:32:39 +08:00

60 lines
1.3 KiB
PHP

<?php
namespace member\models\forms;
use common\core\BaseModel;
use member\models\User;
use yii\base\Exception;
class UpdatePassForm extends BaseModel
{
public $old_pass;
public $new_pass;
public function rules()
{
return [
[['old_pass', 'new_pass'], 'required'],
[['old_pass', 'new_pass'], 'string'],
['old_pass', 'validatePassword'],
];
}
public function attributeLabels()
{
return [
'old_pass' => '旧密码',
'new_pass' => '新密码',
];
}
public function validatePassword($attribute, $params)
{
/* @var User $user */
$user = \Yii::$app->user->identity;
if(!$user->validatePassword($this->old_pass)){
$this->addError($attribute, '旧密码错误');
}
}
public function updatePassword()
{
if (!$this->validate()){
throw new \yii\db\Exception($this->getErrorMsg());
}
$t = \Yii::$app->db->beginTransaction();
try {
/* @var User $user */
$user = \Yii::$app->user->identity;
$user->setPassword($this->new_pass);
$user->saveOrFail();
$t->commit();
return [];
} catch (Exception $e) {
$t->rollBack();
throw $e;
}
}
}