60 lines
1.4 KiB
PHP
60 lines
1.4 KiB
PHP
<?php
|
|
|
|
namespace service\models\forms;
|
|
|
|
use common\core\BaseModel;
|
|
use common\models\ServiceUserToken;
|
|
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;
|
|
}
|
|
}
|
|
} |