From b86743de24af0fab7807c5235c08c2da81324808 Mon Sep 17 00:00:00 2001 From: the-djmaze <> Date: Tue, 8 Oct 2024 22:52:33 +0200 Subject: [PATCH] Resolve #1706 --- .../app/libraries/RainLoop/Actions/UserAuth.php | 14 ++++++++------ .../app/libraries/RainLoop/Providers/Domain.php | 8 +++----- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/snappymail/v/0.0.0/app/libraries/RainLoop/Actions/UserAuth.php b/snappymail/v/0.0.0/app/libraries/RainLoop/Actions/UserAuth.php index f497fedd0..be26a590e 100644 --- a/snappymail/v/0.0.0/app/libraries/RainLoop/Actions/UserAuth.php +++ b/snappymail/v/0.0.0/app/libraries/RainLoop/Actions/UserAuth.php @@ -141,21 +141,23 @@ protected function resolveLoginCredentials(string $sEmail, SensitiveString $oPas */ public function LoginProcess(string $sEmail, SensitiveString $oPassword, bool $bMainAccount = true): Account { - $sCredentials = $this->resolveLoginCredentials($sEmail, $oPassword); + $aCredentials = $this->resolveLoginCredentials($sEmail, $oPassword); - if (!\str_contains($sCredentials['email'], '@') || !\strlen($oPassword)) { + if (!\str_contains($aCredentials['email'], '@') || !\strlen($oPassword)) { throw new ClientException(Notifications::InvalidInputArgument); } + $oDomain = $this->DomainProvider()->getByEmailAddress($aCredentials['email']); + $oAccount = null; try { $oAccount = $bMainAccount ? new MainAccount : new AdditionalAccount; $oAccount->setCredentials( - $sCredentials['domain'], - $sCredentials['email'], - $sCredentials['imapUser'], + $aCredentials['domain'], + $aCredentials['email'], + $aCredentials['imapUser'], $oPassword, - $sCredentials['smtpUser'] + $aCredentials['smtpUser'] // ,new SensitiveString($oPassword) ); $this->Plugins()->RunHook('filter.account', array($oAccount)); diff --git a/snappymail/v/0.0.0/app/libraries/RainLoop/Providers/Domain.php b/snappymail/v/0.0.0/app/libraries/RainLoop/Providers/Domain.php index 41b18a840..25ef02501 100644 --- a/snappymail/v/0.0.0/app/libraries/RainLoop/Providers/Domain.php +++ b/snappymail/v/0.0.0/app/libraries/RainLoop/Providers/Domain.php @@ -2,6 +2,7 @@ namespace RainLoop\Providers; +use RainLoop\Notifications; use RainLoop\Exceptions\ClientException; class Domain extends AbstractProvider @@ -80,13 +81,10 @@ public function getByEmailAddress(string $sEmail) : \RainLoop\Model\Domain { $oDomain = $this->Load(\MailSo\Base\Utils::getEmailAddressDomain($sEmail), true); if (!$oDomain) { - $this->logWrite("{$sEmail} has no domain configuration", \LOG_INFO, 'domain'); - throw new ClientException(Notifications::DomainNotAllowed); + throw new ClientException(Notifications::DomainNotAllowed, null, "{$sEmail} has no domain configuration"); } if (!$oDomain->ValidateWhiteList($sEmail)) { - $this->logWrite("{$sEmail} not whitelisted in {$oDomain->Name()}", \LOG_WARNING, 'domain'); - throw new ClientException(Notifications::AccountNotAllowed); -// throw new ClientException(Notifications::AccountNotAllowed, null, "{$sEmail} not whitelisted in {$oDomain->Name()}"); + throw new ClientException(Notifications::AccountNotAllowed, null, "{$sEmail} not whitelisted"); } return $oDomain; }