From 7fc92f15742a3b530fd560de606b0a9a5da8a264 Mon Sep 17 00:00:00 2001 From: Avinash Gusain Date: Tue, 16 Dec 2025 00:25:19 +0530 Subject: [PATCH 1/2] fixed check for deliverable and disposable email idss --- lib/Service/RecoveryEmailService.php | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/lib/Service/RecoveryEmailService.php b/lib/Service/RecoveryEmailService.php index 4266d56..b1d6f16 100644 --- a/lib/Service/RecoveryEmailService.php +++ b/lib/Service/RecoveryEmailService.php @@ -268,12 +268,12 @@ class RecoveryEmailService { $responseBody = $response->getBody(); // Get the response body as a string $data = json_decode($responseBody, true); - if ($data['disposable'] ?? false) { + if (isset($data['disposable']) && $data['disposable'] === true) { $this->logger->info("User ID $username's requested recovery email address is disposable."); throw new BlacklistedEmailException($l->t('The email address is disposable. Please provide another recovery address.')); } - if (!$data['deliverable_email'] ?? true) { + if (isset($data['deliverable_email']) && $data['deliverable_email'] === false) { $this->logger->info("User ID $username's requested recovery email address is not deliverable."); throw new BlacklistedEmailException($l->t('The email address is not deliverable. Please provide another recovery address.')); } @@ -309,18 +309,18 @@ class RecoveryEmailService { throw new \RuntimeException("Invalid response received while verifying domain: " . $response); } - // Handle response data - if ($data['disposable'] ?? false) { - $this->logger->info("User ID $username's requested recovery email address is from a disposable domain."); - $this->domainService->addCustomDisposableDomain($domain, $l, $data['related_domains'] ?? []); - throw new BlacklistedEmailException($l->t('The email address is disposable. Please provide another recovery address.')); - } - - if (!$data['mx'] ?? true) { - $this->logger->info("User ID $username's requested recovery email address domain is not valid."); - $this->domainService->addCustomDisposableDomain($domain, $l, $data['related_domains'] ?? []); - throw new BlacklistedEmailException($l->t('The email address is not deliverable. Please provide another recovery address.')); - } + // Handle response data + if (isset($data['disposable']) && $data['disposable'] === true) { + $this->logger->info("User ID $username's requested recovery email address is from a disposable domain."); + $this->domainService->addCustomDisposableDomain($domain, $l, $data['related_domains'] ?? []); + throw new BlacklistedEmailException($l->t('The email address is disposable. Please provide another recovery address.')); + } + + if (isset($data['mx']) && $data['mx'] === false) { + $this->logger->info("User ID $username's requested recovery email address domain is not valid."); + $this->domainService->addCustomDisposableDomain($domain, $l, $data['related_domains'] ?? []); + throw new BlacklistedEmailException($l->t('The email address is not deliverable. Please provide another recovery address.')); + } $this->logger->info("User ID $username's requested recovery email address domain is valid."); }, $l, // Pass the IL10N object -- GitLab From b7b18542ce4cc4cbb3eda6763973e9c54b934608 Mon Sep 17 00:00:00 2001 From: Avinash Gusain Date: Tue, 16 Dec 2025 10:11:05 +0530 Subject: [PATCH 2/2] lint fix --- lib/Service/RecoveryEmailService.php | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/lib/Service/RecoveryEmailService.php b/lib/Service/RecoveryEmailService.php index b1d6f16..101d174 100644 --- a/lib/Service/RecoveryEmailService.php +++ b/lib/Service/RecoveryEmailService.php @@ -309,18 +309,18 @@ class RecoveryEmailService { throw new \RuntimeException("Invalid response received while verifying domain: " . $response); } - // Handle response data - if (isset($data['disposable']) && $data['disposable'] === true) { - $this->logger->info("User ID $username's requested recovery email address is from a disposable domain."); - $this->domainService->addCustomDisposableDomain($domain, $l, $data['related_domains'] ?? []); - throw new BlacklistedEmailException($l->t('The email address is disposable. Please provide another recovery address.')); - } + // Handle response data + if (isset($data['disposable']) && $data['disposable'] === true) { + $this->logger->info("User ID $username's requested recovery email address is from a disposable domain."); + $this->domainService->addCustomDisposableDomain($domain, $l, $data['related_domains'] ?? []); + throw new BlacklistedEmailException($l->t('The email address is disposable. Please provide another recovery address.')); + } - if (isset($data['mx']) && $data['mx'] === false) { - $this->logger->info("User ID $username's requested recovery email address domain is not valid."); - $this->domainService->addCustomDisposableDomain($domain, $l, $data['related_domains'] ?? []); - throw new BlacklistedEmailException($l->t('The email address is not deliverable. Please provide another recovery address.')); - } + if (isset($data['mx']) && $data['mx'] === false) { + $this->logger->info("User ID $username's requested recovery email address domain is not valid."); + $this->domainService->addCustomDisposableDomain($domain, $l, $data['related_domains'] ?? []); + throw new BlacklistedEmailException($l->t('The email address is not deliverable. Please provide another recovery address.')); + } $this->logger->info("User ID $username's requested recovery email address domain is valid."); }, $l, // Pass the IL10N object -- GitLab