oDriver = $oDriver; $this->oDomainProvider = $oDomainProvider; } /** * @param string $sEmail * @param string $sLogin * @param string $sPassword * @param bool $sSignMeToken = '' * * @return \RainLoop\Account|null */ public function Provide($sEmail, $sLogin, $sPassword, $sSignMeToken = '') { $oResult = null; if ($this->oDriver->ProvideParameters($sEmail, $sLogin, $sPassword)) { $oDomain = $this->oDomainProvider->Load(\MailSo\Base\Utils::GetDomainFromEmail($sEmail)); if ($oDomain instanceof \RainLoop\Domain && !$oDomain->Disabled() && $oDomain->ValidateWhiteList($sEmail, $sLogin)) { $oResult = \RainLoop\Account::NewInstance($sEmail, $sLogin, $sPassword, $oDomain, $sSignMeToken); } } return $oResult; } /** * @return bool */ public function IsActive() { return $this->oDriver instanceof \RainLoop\Providers\Login\LoginInterface; } }