From c89d07520003cae0dec23524ed1423250baec905 Mon Sep 17 00:00:00 2001 From: Eldad Fux Date: Sun, 19 Oct 2025 22:09:26 +0100 Subject: [PATCH] refactor: streamline disposable email validation in account API - Replaced the previous disposable email validation logic with the EmailNotDisposable validator from the Utopia Emails library for consistency and improved maintainability. - Removed unnecessary configuration loading related to disposable emails, aligning with recent updates to the email validation process. --- app/controllers/api/account.php | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/app/controllers/api/account.php b/app/controllers/api/account.php index c215aea3d7..63252e364e 100644 --- a/app/controllers/api/account.php +++ b/app/controllers/api/account.php @@ -1978,9 +1978,8 @@ App::post('/v1/account/tokens/magic-url') } if (($plan['supportsDisposableEmailValidation'] ?? false) && ($project->getAttribute('auths', [])['disposableEmails'] ?? false)) { - $disposableEmails = Config::getParam('disposableEmails', []); - $emailDomain = substr(strrchr($email, "@"), 1); - if (isset($disposableEmails[$emailDomain])) { + $emailNotDisposableValidator = new EmailNotDisposable(); + if (!$emailNotDisposableValidator->isValid($email)) { throw new Exception(Exception::USER_EMAIL_DISPOSABLE); } } @@ -2237,9 +2236,8 @@ App::post('/v1/account/tokens/email') } if (($plan['supportsDisposableEmailValidation'] ?? false) && ($project->getAttribute('auths', [])['disposableEmails'] ?? false)) { - $disposableEmails = Config::getParam('disposableEmails', []); - $emailDomain = substr(strrchr($email, "@"), 1); - if (isset($disposableEmails[$emailDomain])) { + $emailNotDisposableValidator = new EmailNotDisposable(); + if (!$emailNotDisposableValidator->isValid($email)) { throw new Exception(Exception::USER_EMAIL_DISPOSABLE); } }