优化权限规则

pull/516/MERGE
Karson 2026-01-07 18:13:26 +08:00
parent 063773b3b5
commit 10150d7f13
2 changed files with 8 additions and 7 deletions

View File

@ -99,7 +99,8 @@ class Rule extends Backend
if (!$params['ismenu'] && !$params['pid']) { if (!$params['ismenu'] && !$params['pid']) {
$this->error(__('The non-menu rule must have parent')); $this->error(__('The non-menu rule must have parent'));
} }
$result = $this->model->validate()->save($params); $validate = \think\Loader::validate('AuthRule', 'validate', false, 'admin');
$result = $this->model->validate($validate)->save($params);
if ($result === false) { if ($result === false) {
$this->error($this->model->getError()); $this->error($this->model->getError());
} }
@ -137,11 +138,11 @@ class Rule extends Backend
} }
} }
//这里需要针对name做唯一验证 //这里需要针对name做唯一验证
$ruleValidate = \think\Loader::validate('AuthRule'); $ruleValidate = \think\Loader::validate('AuthRule', 'validate', false, 'admin');
$ruleValidate->rule([ $ruleValidate->rule([
'name' => 'require|unique:AuthRule,name,' . $row->id, 'name' => 'require|regex:format|unique:AuthRule,name,' . $row->id,
]); ]);
$result = $row->validate()->save($params); $result = $row->validate($ruleValidate)->save($params);
if ($result === false) { if ($result === false) {
$this->error($row->getError()); $this->error($row->getError());
} }

View File

@ -16,7 +16,7 @@ class AuthRule extends Validate
* 验证规则 * 验证规则
*/ */
protected $rule = [ protected $rule = [
'name' => 'require|unique:AuthRule', 'name' => 'require|regex:format|unique:AuthRule',
'title' => 'require', 'title' => 'require',
]; ];
@ -24,7 +24,7 @@ class AuthRule extends Validate
* 提示消息 * 提示消息
*/ */
protected $message = [ protected $message = [
'name.format' => 'URL规则只能是小写字母、数字、下划线和/组成' 'name.regex' => 'URL规则只能是小写字母、数字、下划线和/组成'
]; ];
/** /**
@ -45,7 +45,7 @@ class AuthRule extends Validate
'name' => __('Name'), 'name' => __('Name'),
'title' => __('Title'), 'title' => __('Title'),
]; ];
$this->message['name.format'] = __('Name only supports letters, numbers, underscore and slash'); $this->message['name.regex'] = __('Name only supports letters, numbers, underscore and slash');
parent::__construct($rules, $message, $field); parent::__construct($rules, $message, $field);
} }