Files
xk-api-yii/service/models/forms/UpdatePasswordForm.php

59 lines
1.3 KiB
PHP

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