Fix WAF whitelist table key
This commit is contained in:
@@ -36,7 +36,6 @@ class WafWhitelistTable extends Component implements HasTable
|
||||
{
|
||||
return $table
|
||||
->records(fn () => $this->getWhitelistRules())
|
||||
->recordKey('id')
|
||||
->paginated([10, 25, 50])
|
||||
->defaultPaginationPageOption(10)
|
||||
->columns([
|
||||
@@ -83,7 +82,7 @@ class WafWhitelistTable extends Component implements HasTable
|
||||
$rules = $this->getWhitelistRules();
|
||||
|
||||
foreach ($rules as &$rule) {
|
||||
if (($rule['id'] ?? '') === ($record['id'] ?? '')) {
|
||||
if (($rule['__key'] ?? '') === ($record['__key'] ?? '')) {
|
||||
$rule = array_merge($rule, $this->normalizeRule($data));
|
||||
break;
|
||||
}
|
||||
@@ -103,7 +102,7 @@ class WafWhitelistTable extends Component implements HasTable
|
||||
->requiresConfirmation()
|
||||
->action(function (array $record): void {
|
||||
$rules = array_values(array_filter($this->getWhitelistRules(), function (array $rule) use ($record) {
|
||||
return ($rule['id'] ?? '') !== ($record['id'] ?? '');
|
||||
return ($rule['__key'] ?? '') !== ($record['__key'] ?? '');
|
||||
}));
|
||||
|
||||
$this->persistWhitelistRules($rules);
|
||||
@@ -169,7 +168,7 @@ class WafWhitelistTable extends Component implements HasTable
|
||||
}
|
||||
|
||||
$rule['label'] = $this->normalizeLabel($rule);
|
||||
$rule['id'] = $this->ruleId($rule);
|
||||
$rule['__key'] = $this->ruleKey($rule);
|
||||
}
|
||||
|
||||
$rules = array_values(array_filter($rules, fn ($rule) => is_array($rule) && ($rule !== [])));
|
||||
@@ -191,7 +190,7 @@ class WafWhitelistTable extends Component implements HasTable
|
||||
];
|
||||
|
||||
$rule['label'] = $this->normalizeLabel($rule);
|
||||
$rule['id'] = $this->ruleId($rule);
|
||||
$rule['__key'] = $this->ruleKey($rule);
|
||||
|
||||
return $rule;
|
||||
}
|
||||
@@ -216,7 +215,7 @@ class WafWhitelistTable extends Component implements HasTable
|
||||
return __('Whitelist rule');
|
||||
}
|
||||
|
||||
protected function ruleId(array $rule): string
|
||||
protected function ruleKey(array $rule): string
|
||||
{
|
||||
return md5(json_encode(Arr::only($rule, ['label', 'match_type', 'match_value', 'rule_ids'])));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user