chg: [internal] Simplify validation for `domain|ip`

pull/7893/head
Jakub Onderka 2021-10-28 10:56:01 +02:00
parent ed1e8f50fa
commit 4a95ff7fc6
2 changed files with 19 additions and 8 deletions

View File

@ -402,15 +402,14 @@ class AttributeValidationTool
}
return true;
case 'domain|ip':
if (preg_match("#^[A-Z0-9.\-_]+\.[A-Z0-9\-]{2,}\|.*$#i", $value)) {
$parts = explode('|', $value);
if (filter_var($parts[1], FILTER_VALIDATE_IP)) {
return true;
} else {
return __('IP address has an invalid format.');
}
$parts = explode('|', $value);
if (!self::isDomainValid($parts[0])) {
return __('Domain has an invalid format.');
}
return __('Domain name has an invalid format.');
if (!filter_var($parts[1], FILTER_VALIDATE_IP)) {
return __('IP address has an invalid format.');
}
return true;
case 'email':
case 'email-src':
case 'eppn':

View File

@ -52,6 +52,18 @@ class AttributeValidationToolTest extends TestCase
]);
}
public function testValidateDomainIp(): void
{
$this->shouldBeValid('domain|ip', [
'example.com|127.0.0.1',
'example.com|::1',
]);
$this->shouldBeInvalid('domain|ip', [
'example.com|127',
'example.com|1',
]);
}
private function shouldBeValid($type, array $values)
{
foreach ($values as $value) {