1
0
mirror of https://github.com/elyby/accounts.git synced 2025-03-11 10:49:10 +05:30

Fixes ACCOUNTS-CJ. Handle invalid idna convert result

This commit is contained in:
ErickSkrauch 2025-01-30 03:36:15 +01:00
parent be4697e6eb
commit 6b2ced9c75
No known key found for this signature in database
GPG Key ID: 669339FCBB30EE0E

@ -66,9 +66,16 @@ final class EmailValidator extends Validator {
}
};
$idnaDomain = new validators\FilterValidator(['filter' => function(string $value): string {
$idnaDomain = new validators\FilterValidator(['filter' => function(string $value) use ($model, $attribute): string {
[$name, $domain] = explode('@', $value);
return idn_to_ascii($name) . '@' . idn_to_ascii($domain);
$idnName = idn_to_ascii($name);
$idnDomain = idn_to_ascii($domain);
if ($idnName === false || $idnDomain === false) {
$this->addError($model, $attribute, E::EMAIL_INVALID);
return '';
}
return "{$idnName}@{$idnDomain}";
}]);
$unique = new validators\UniqueValidator();