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