初始化仓库
This commit is contained in:
60
member/models/forms/UpdatePassForm.php
Normal file
60
member/models/forms/UpdatePassForm.php
Normal file
@@ -0,0 +1,60 @@
|
||||
<?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;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user