cxfoot/modules/admin/models/PasswordEditForm.php
2023-10-27 14:25:12 +08:00

67 lines
1.8 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);
}
}
}