67 lines
1.7 KiB
PHP
67 lines
1.7 KiB
PHP
<?php
|
|
|
|
/**
|
|
* @author Any
|
|
* @description KISS
|
|
* @date 2020-11-5
|
|
* @version 1.0.0
|
|
*
|
|
* _____LOG_____
|
|
*
|
|
*/
|
|
namespace app\modules\admin\models;
|
|
|
|
use app\models\Admin;
|
|
|
|
class PasswordEditForm extends AdminModel
|
|
{
|
|
public $old_password;
|
|
public $password;
|
|
public $password_repeat;
|
|
|
|
public function rules()
|
|
{
|
|
return [
|
|
[['old_password','password','password_repeat'], 'trim'],
|
|
[['old_password','password','password_repeat'],'required'],
|
|
[['old_password','password','password_repeat'], 'string', 'min' => 6],
|
|
[['password'],'match', 'pattern' => '/(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[-#_*%$])^.{6,16}$/', 'message' => '密码需包含大小写字母以及字符殊符号 #-_*%$组成', ],
|
|
['password', 'compare', 'message' => '两次密码必须一致'],
|
|
];
|
|
}
|
|
|
|
public function attributeLabels() {
|
|
return [
|
|
'old_password' => '原密码',
|
|
'password' => '新密码',
|
|
'password_repeat' => '重复输入密码'
|
|
];
|
|
}
|
|
|
|
|
|
public function save()
|
|
{
|
|
if(!$this->validate())
|
|
return $this->getModelError();
|
|
$admin = Admin::findOne([
|
|
'id' => \Yii::$app->admin->identity->id,
|
|
]);
|
|
if(!$admin->validatePassword($this->old_password)){
|
|
return [
|
|
'code' => 1,
|
|
'msg' => '原密码不正确'
|
|
];
|
|
}
|
|
$flag = $admin->setPassword($this->password);
|
|
if($flag){
|
|
//@DONE 消息提醒
|
|
return [
|
|
'code' => 0,
|
|
'msg' => '密码修改成功'
|
|
];
|
|
} else {
|
|
return $this->getModelError($admin);
|
|
}
|
|
}
|
|
|
|
} |