Fix WAF whitelist table key

This commit is contained in:
root
2026-01-31 00:46:26 +02:00
parent 1125ec4a05
commit b6cb47f68f

View File

@@ -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'])));
}