From 6266b50c031d87521443b8eefc93372c7116c7b8 Mon Sep 17 00:00:00 2001 From: RainLoop Team Date: Thu, 13 Nov 2014 02:09:14 +0400 Subject: [PATCH] Added mail function support --- dev/Storage/Admin/Remote.js | 8 +- dev/Styles/Components.less | 17 ++- dev/View/Popup/Domain.js | 7 +- rainloop/v/0.0.0/app/handle.php | 8 +- .../app/libraries/MailSo/Mime/Message.php | 9 ++ rainloop/v/0.0.0/app/src/RainLoop/Account.php | 6 - rainloop/v/0.0.0/app/src/RainLoop/Actions.php | 128 +++++++++++------ .../Common/BackwardCapability/Account.php | 5 + .../0.0.0/app/src/RainLoop/Model/Account.php | 14 +- .../v/0.0.0/app/src/RainLoop/Model/Domain.php | 41 ++++-- .../app/src/RainLoop/PluginsNext/Manager.php | 4 +- .../RainLoop/Providers/AbstractProvider.php | 4 +- .../src/RainLoop/Providers/ChangePassword.php | 8 +- .../ChangePasswordInterface.php | 6 +- .../app/src/RainLoop/Providers/Domain.php | 5 +- .../app/src/RainLoop/Providers/Files.php | 14 +- .../Providers/Files/DefaultStorage.php | 16 +-- .../Providers/Files/FilesInterface.php | 12 +- .../app/src/RainLoop/Providers/Settings.php | 8 +- .../Providers/Settings/DefaultSettings.php | 8 +- .../Providers/Settings/SettingsInterface.php | 8 +- .../app/src/RainLoop/Providers/Storage.php | 10 +- .../Providers/Storage/DefaultStorage.php | 10 +- .../Providers/Storage/StorageInterface.php | 6 +- .../src/RainLoop/Providers/Suggestions.php | 4 +- .../Suggestions/SuggestionsInterface.php | 4 +- .../0.0.0/app/src/RainLoop/ServiceActions.php | 8 +- rainloop/v/0.0.0/app/src/RainLoop/Social.php | 8 +- .../templates/Views/Admin/PopupsDomain.html | 129 +++++++++++------- 29 files changed, 311 insertions(+), 204 deletions(-) delete mode 100644 rainloop/v/0.0.0/app/src/RainLoop/Account.php create mode 100644 rainloop/v/0.0.0/app/src/RainLoop/Common/BackwardCapability/Account.php diff --git a/dev/Storage/Admin/Remote.js b/dev/Storage/Admin/Remote.js index 7630dfdcd..b5ed5ce3a 100644 --- a/dev/Storage/Admin/Remote.js +++ b/dev/Storage/Admin/Remote.js @@ -211,7 +211,7 @@ RemoteAdminStorage.prototype.createOrUpdateDomain = function (fCallback, bCreate, sName, sIncHost, iIncPort, sIncSecure, bIncShortLogin, - sOutHost, iOutPort, sOutSecure, bOutShortLogin, bOutAuth, sWhiteList) + sOutHost, iOutPort, sOutSecure, bOutShortLogin, bOutAuth, bOutPhpMail, sWhiteList) { this.defaultRequest(fCallback, 'AdminDomainSave', { 'Create': bCreate ? '1' : '0', @@ -225,12 +225,13 @@ 'OutSecure': sOutSecure, 'OutShortLogin': bOutShortLogin ? '1' : '0', 'OutAuth': bOutAuth ? '1' : '0', + 'OutUsePhpMail': bOutPhpMail ? '1' : '0', 'WhiteList': sWhiteList }); }; RemoteAdminStorage.prototype.testConnectionForDomain = function (fCallback, sName, - sIncHost, iIncPort, sIncSecure, sOutHost, iOutPort, sOutSecure, bOutAuth) + sIncHost, iIncPort, sIncSecure, sOutHost, iOutPort, sOutSecure, bOutAuth, bOutPhpMail) { this.defaultRequest(fCallback, 'AdminDomainTest', { 'Name': sName, @@ -240,7 +241,8 @@ 'OutHost': sOutHost, 'OutPort': iOutPort, 'OutSecure': sOutSecure, - 'OutAuth': bOutAuth ? '1' : '0' + 'OutAuth': bOutAuth ? '1' : '0', + 'OutUsePhpMail': bOutPhpMail ? '1' : '0' }); }; diff --git a/dev/Styles/Components.less b/dev/Styles/Components.less index 8846c7e97..58781d4ea 100644 --- a/dev/Styles/Components.less +++ b/dev/Styles/Components.less @@ -84,11 +84,6 @@ .checkbox-box-sizes(); } - &.disabled .sub-checkbox { - cursor: default; - color: #aaa; - } - .sub-checkbox.checked { border-top: none; border-left: none; @@ -121,6 +116,18 @@ animation: checkmark-shrink 140ms ease-out forwards; } } + + &.disabled { + .sub-checkbox { + border-color: #aaa; + cursor: not-allowed; + color: #aaa; + } + .sub-label { + cursor: not-allowed; + color: #aaa; + } + } } } diff --git a/dev/View/Popup/Domain.js b/dev/View/Popup/Domain.js index f18b31787..3649ebfaa 100644 --- a/dev/View/Popup/Domain.js +++ b/dev/View/Popup/Domain.js @@ -69,6 +69,7 @@ this.smtpSecure = ko.observable(Enums.ServerSecure.None); this.smtpShortLogin = ko.observable(false); this.smtpAuth = ko.observable(true); + this.smtpPhpMail = ko.observable(false); this.whiteList = ko.observable(''); this.enableSmartPorts = ko.observable(false); @@ -110,6 +111,7 @@ this.smtpSecure(), this.smtpShortLogin(), this.smtpAuth(), + this.smtpPhpMail(), this.whiteList() ); }, this.canBeSaved); @@ -129,7 +131,8 @@ this.smtpServer(), Utils.pInt(this.smtpPort()), this.smtpSecure(), - this.smtpAuth() + this.smtpAuth(), + this.smtpPhpMail() ); }, this.canBeTested); @@ -289,6 +292,7 @@ this.smtpSecure(Utils.trim(oDomain.OutSecure)); this.smtpShortLogin(!!oDomain.OutShortLogin); this.smtpAuth(!!oDomain.OutAuth); + this.smtpPhpMail(!!oDomain.OutUsePhpMail); this.whiteList(Utils.trim(oDomain.WhiteList)); this.enableSmartPorts(true); @@ -323,6 +327,7 @@ this.smtpSecure(Enums.ServerSecure.None); this.smtpShortLogin(false); this.smtpAuth(true); + this.smtpPhpMail(false); this.whiteList(''); this.enableSmartPorts(true); diff --git a/rainloop/v/0.0.0/app/handle.php b/rainloop/v/0.0.0/app/handle.php index 6d836c0c0..1d9aa0545 100644 --- a/rainloop/v/0.0.0/app/handle.php +++ b/rainloop/v/0.0.0/app/handle.php @@ -6,6 +6,12 @@ if (!\defined('RAINLOOP_APP_LIBRARIES_PATH')) \define('RAINLOOP_APP_LIBRARIES_PATH', RAINLOOP_APP_PATH.'libraries/'); \define('RAINLOOP_MB_SUPPORTED', \function_exists('mb_strtoupper')); + if (!defined('RL_BACKWARD_CAPABILITY')) + { + \define('RL_BACKWARD_CAPABILITY', true); + include_once RAINLOOP_APP_PATH.'src/RainLoop/Common/BackwardCapability/Account.php'; + } + /** * @param string $sClassName * @@ -30,7 +36,7 @@ if (!\defined('RAINLOOP_APP_LIBRARIES_PATH')) if (!RAINLOOP_MB_SUPPORTED && !defined('RL_MB_FIXED')) { \define('RL_MB_FIXED', true); - include_once RAINLOOP_APP_LIBRARIES_PATH.'RainLoop/Common/MbStringFix.php'; + include_once RAINLOOP_APP_PATH.'src/RainLoop/Common/MbStringFix.php'; } return include RAINLOOP_APP_LIBRARIES_PATH.'Sabre/'.\str_replace('\\', '/', \substr($sClassName, 6)).'.php'; diff --git a/rainloop/v/0.0.0/app/libraries/MailSo/Mime/Message.php b/rainloop/v/0.0.0/app/libraries/MailSo/Mime/Message.php index 692232e74..0b14d5625 100644 --- a/rainloop/v/0.0.0/app/libraries/MailSo/Mime/Message.php +++ b/rainloop/v/0.0.0/app/libraries/MailSo/Mime/Message.php @@ -123,6 +123,15 @@ class Message return $this->oAttachmentCollection; } + /** + * @return string + */ + public function GetSubject() + { + return isset($this->aHeadersValue[\MailSo\Mime\Enumerations\Header::SUBJECT]) ? + $this->aHeadersValue[\MailSo\Mime\Enumerations\Header::SUBJECT] : ''; + } + /** * @return \MailSo\Mime\Email|null */ diff --git a/rainloop/v/0.0.0/app/src/RainLoop/Account.php b/rainloop/v/0.0.0/app/src/RainLoop/Account.php deleted file mode 100644 index ba3e898af..000000000 --- a/rainloop/v/0.0.0/app/src/RainLoop/Account.php +++ /dev/null @@ -1,6 +0,0 @@ -MailClient()->LogoutAndDisconnect(); } } - catch (\Exception $oException) {} + catch (\Exception $oException) { unset($oException); } } /** @@ -421,7 +421,7 @@ class Actions } /** - * @param \RainLoop\Account $oAccount + * @param \RainLoop\Model\Account $oAccount * * @return void */ @@ -512,7 +512,7 @@ class Actions /** * @param bool $bThrowExceptionOnFalse = false * - * @return \RainLoop\Account|bool + * @return \RainLoop\Model\Account|bool * @throws \RainLoop\Exceptions\ClientException */ public function GetAccount($bThrowExceptionOnFalse = false) @@ -660,7 +660,7 @@ class Actions } /** - * @param \RainLoop\Account $oAccount = null + * @param \RainLoop\Model\Account $oAccount = null * @param bool $bForceEnable = false * * @return \RainLoop\Providers\AddressBook @@ -861,7 +861,7 @@ class Actions * @param string $sSignMeToken = '' * @param bool $bThrowProvideException = false * - * @return \RainLoop\Account|null + * @return \RainLoop\Model\Account|null */ public function LoginProvide($sEmail, $sLogin, $sPassword, $sSignMeToken = '', $bThrowProvideException = false) { @@ -873,10 +873,10 @@ class Actions { if ($oDomain->ValidateWhiteList($sEmail, $sLogin)) { - $oAccount = \RainLoop\Account::NewInstance($sEmail, $sLogin, $sPassword, $oDomain, $sSignMeToken); + $oAccount = \RainLoop\Model\Account::NewInstance($sEmail, $sLogin, $sPassword, $oDomain, $sSignMeToken); $this->Plugins()->RunHook('filter.acount', array(&$oAccount)); - if ($bThrowProvideException && !($oAccount instanceof \RainLoop\Account)) + if ($bThrowProvideException && !($oAccount instanceof \RainLoop\Model\Account)) { throw new \RainLoop\Exceptions\ClientException(\RainLoop\Notifications::AuthError); } @@ -900,7 +900,7 @@ class Actions * @param bool $bThrowExceptionOnFalse = true * @param bool $bValidateShortToken = true * - * @return \RainLoop\Account|bool + * @return \RainLoop\Model\Account|bool * @throws \RainLoop\Exceptions\ClientException */ public function GetAccountFromCustomToken($sToken, $bThrowExceptionOnFalse = true, $bValidateShortToken = true) @@ -919,7 +919,7 @@ class Actions $oAccount = $this->LoginProvide($aAccountHash[1], $aAccountHash[2], $aAccountHash[3], empty($aAccountHash[5]) ? '' : $aAccountHash[5], $bThrowExceptionOnFalse); - if ($oAccount instanceof \RainLoop\Account) + if ($oAccount instanceof \RainLoop\Model\Account) { if (!empty($aAccountHash[8]) && !empty($aAccountHash[9])) // init proxy user/password { @@ -940,7 +940,7 @@ class Actions } } - if ($bThrowExceptionOnFalse && !($oResult instanceof \RainLoop\Account)) + if ($bThrowExceptionOnFalse && !($oResult instanceof \RainLoop\Model\Account)) { throw new \RainLoop\Exceptions\ClientException(\RainLoop\Notifications::AuthError); } @@ -949,7 +949,7 @@ class Actions } /** - * @return \RainLoop\Account|bool + * @return \RainLoop\Model\Account|bool */ public function GetAccountFromSignMeToken() { @@ -970,7 +970,7 @@ class Actions /** * @param bool $bThrowExceptionOnFalse = true * - * @return \RainLoop\Account|bool + * @return \RainLoop\Model\Account|bool * @throws \RainLoop\Exceptions\ClientException */ private function getAccountFromToken($bThrowExceptionOnFalse = true) @@ -1090,7 +1090,7 @@ class Actions if (!$bAdmin) { $oAccount = $this->getAccountFromToken(false); - if ($oAccount instanceof \RainLoop\Account) + if ($oAccount instanceof \RainLoop\Model\Account) { $oAddressBookProvider = $this->AddressBookProvider($oAccount); @@ -1450,11 +1450,11 @@ class Actions } } /** - * @param \RainLoop\Account $oAccount + * @param \RainLoop\Model\Account $oAccount */ public function AuthToken($oAccount) { - if ($oAccount instanceof \RainLoop\Account) + if ($oAccount instanceof \RainLoop\Model\Account) { $this->SetAuthToken($oAccount); @@ -1468,7 +1468,7 @@ class Actions } /** - * @param \RainLoop\Account $oAccount + * @param \RainLoop\Model\Account $oAccount * * @throws \RainLoop\Exceptions\ClientException */ @@ -1499,7 +1499,7 @@ class Actions * @param string $sAdditionalCode = '' * @param string $bAdditionalCodeSignMe = false * - * @return \RainLoop\Account + * @return \RainLoop\Model\Account * @throws \RainLoop\Exceptions\ClientException */ public function LoginProcess(&$sEmail, &$sPassword, $sSignMeToken = '', @@ -1585,14 +1585,14 @@ class Actions { $oAccount = $this->LoginProvide($sEmail, $sLogin, $sPassword, $sSignMeToken, true); - if (!($oAccount instanceof \RainLoop\Account)) + if (!($oAccount instanceof \RainLoop\Model\Account)) { throw new \RainLoop\Exceptions\ClientException(\RainLoop\Notifications::AuthError); } $this->Plugins()->RunHook('event.login-post-login-provide', array(&$oAccount)); - if (!($oAccount instanceof \RainLoop\Account)) + if (!($oAccount instanceof \RainLoop\Model\Account)) { throw new \RainLoop\Exceptions\ClientException(\RainLoop\Notifications::AuthError); } @@ -1813,7 +1813,7 @@ class Actions } /** - * @param \RainLoop\Account $oAccount + * @param \RainLoop\Model\Account $oAccount * * @return array */ @@ -1851,7 +1851,7 @@ class Actions } /** - * @param \RainLoop\Account $oAccount + * @param \RainLoop\Model\Account $oAccount * * @return array */ @@ -1892,7 +1892,7 @@ class Actions } /** - * @param \RainLoop\Account $oAccount + * @param \RainLoop\Model\Account $oAccount * * @return array */ @@ -1950,7 +1950,7 @@ class Actions } /** - * @param \RainLoop\Account $oAccount + * @param \RainLoop\Model\Account $oAccount * @param array $aAccounts = array() * * @return array @@ -1972,7 +1972,7 @@ class Actions } /** - * @param \RainLoop\Account $oAccount + * @param \RainLoop\Model\Account $oAccount * @param array $aIdentities = array() * * @return array @@ -2238,7 +2238,7 @@ class Actions } /** - * @param \RainLoop\Account $oAccount + * @param \RainLoop\Model\Account $oAccount */ public function ClearSignMeData($oAccount) { @@ -3998,7 +3998,7 @@ class Actions /** * @staticvar array $aCache - * @param \RainLoop\Account $oAccount + * @param \RainLoop\Model\Account $oAccount * * @return array */ @@ -4055,7 +4055,7 @@ class Actions } /** - * @param \RainLoop\Account $oAccount + * @param \RainLoop\Model\Account $oAccount * @param \MailSo\Mail\FolderCollection $oFolders * @param array $aResult * @param bool $bListFolderTypes = true @@ -4596,7 +4596,7 @@ class Actions } /** - * @param \RainLoop\Account $oAccount + * @param \RainLoop\Model\Account $oAccount * @param bool $bWithDraftInfo = true * * @return \MailSo\Mime\Message @@ -4763,7 +4763,7 @@ class Actions } /** - * @param \RainLoop\Account $oAccount + * @param \RainLoop\Model\Account $oAccount * * @return \MailSo\Mime\Message */ @@ -4886,10 +4886,11 @@ class Actions /** * - * @param \RainLoop\Account $oAccount - * @param type $oMessage - * @param type $rMessageStream - * @param type $bAddHiddenRcpt + * @param \RainLoop\Model\Account $oAccount + * @param \MailSo\Mime\Message $oMessage + * @param resource $rMessageStream + * @param bool $bAddHiddenRcpt = true + * * @throws \RainLoop\Exceptions\ClientException * @throws \MailSo\Net\Exceptions\ConnectionException */ @@ -4902,8 +4903,6 @@ class Actions try { - $oSmtpClient = \MailSo\Smtp\SmtpClient::NewInstance()->SetLogger($this->Logger()); - $oFrom = $oMessage->GetFrom(); $sFrom = $oFrom instanceof \MailSo\Mime\Email ? $oFrom->GetEmail() : ''; $sFrom = empty($sFrom) ? $oAccount->Email() : $sFrom; @@ -4916,9 +4915,48 @@ class Actions $this->Plugins()->RunHook('filter.smtp-hidden-rcpt', array($oAccount, $oMessage, &$aHiddenRcpt)); } - $bLoggined = $oAccount->OutConnectAndLoginHelper($this->Plugins(), $oSmtpClient, $this->Config()); + $bUsePhpMail = $oAccount->Domain()->OutUsePhpMail(); - if ($oSmtpClient->IsConnected()) + $oSmtpClient = \MailSo\Smtp\SmtpClient::NewInstance()->SetLogger($this->Logger()); + + $bLoggined = $oAccount->OutConnectAndLoginHelper($this->Plugins(), $oSmtpClient, $this->Config(), $bUsePhpMail); + + if ($bUsePhpMail) + { + if (\MailSo\Base\Utils::FunctionExistsAndEnabled('mail')) + { + $aToCollection = $oMessage->GetTo(); + if ($aToCollection && $oFrom) + { + $sRawBody = @\stream_get_contents($rMessageStream); + if (!empty($sRawBody)) + { + $sMailTo = \trim($aToCollection->ToString(true)); + $sMailSubject = \trim($oMessage->GetSubject()); + $sMailSubject = 0 === \strlen($sMailSubject) ? '' : \MailSo\Base\Utils::EncodeUnencodedValue( + \MailSo\Base\Enumerations\Encoding::BASE64_SHORT, $sMailSubject); + + $sMailHeaders = $sMailBody = ''; + list($sMailHeaders, $sMailBody) = \explode("\r\n\r\n", $sRawBody, 2); + unset($sRawBody); + + $this->Logger()->WriteDump(array( + $sMailTo, $sMailSubject, $sMailBody, $sMailHeaders + )); + + if (!\mail($sMailTo, $sMailSubject, $sMailBody, $sMailHeaders/*, '-f'.$oFrom->GetEmail()*/)) + { + throw new \RainLoop\Exceptions\ClientException(\RainLoop\Notifications::CantSendMessage); + } + } + } + } + else + { + throw new \RainLoop\Exceptions\ClientException(\RainLoop\Notifications::CantSendMessage); + } + } + else if ($oSmtpClient->IsConnected()) { if (!empty($sFrom)) { @@ -6503,7 +6541,7 @@ class Actions } /** - * @param \RainLoop\Account $oAccount + * @param \RainLoop\Model\Account $oAccount * @param resource $rFile * @param string $sFileStart * @@ -6563,7 +6601,7 @@ class Actions } /** - * @param \RainLoop\Account $oAccount + * @param \RainLoop\Model\Account $oAccount * @param resource $rFile * @param string $sFileStart * @@ -6677,7 +6715,7 @@ class Actions $sFolderFullNameRaw = $this->GetActionParam('Folder', ''); $_FILES = isset($_FILES) ? $_FILES : null; - if ($oAccount instanceof \RainLoop\Account && + if ($oAccount instanceof \RainLoop\Model\Account && $this->Config()->Get('labs', 'allow_message_append', false) && isset($_FILES, $_FILES['AppendFile'], $_FILES['AppendFile']['name'], $_FILES['AppendFile']['tmp_name'], $_FILES['AppendFile']['size'])) @@ -6705,7 +6743,7 @@ class Actions /** * @param bool $bAdmin - * @param \RainLoop\Account $oAccount + * @param \RainLoop\Model\Account $oAccount * * @return array */ @@ -7031,7 +7069,7 @@ class Actions } /** - * @return \RainLoop\Account|bool + * @return \RainLoop\Model\Account|bool */ private function initMailClientConnection() { @@ -7614,7 +7652,7 @@ class Actions public function GetLanguageAndTheme() { $oAccount = $this->GetAccount(); - $oSettings = $oAccount instanceof \RainLoop\Account ? $this->SettingsProvider()->Load($oAccount) : null; + $oSettings = $oAccount instanceof \RainLoop\Model\Account ? $this->SettingsProvider()->Load($oAccount) : null; $sLanguage = $this->Config()->Get('webmail', 'language', 'en'); $sTheme = $this->Config()->Get('webmail', 'theme', 'Default'); @@ -7912,7 +7950,7 @@ class Actions $mResult['ReadReceipt'] = ''; } } - catch (\Exception $oException) {} + catch (\Exception $oException) { unset($oException); } } if (0 < \strlen($mResult['ReadReceipt']) && '1' === $this->Cacher()->Get( diff --git a/rainloop/v/0.0.0/app/src/RainLoop/Common/BackwardCapability/Account.php b/rainloop/v/0.0.0/app/src/RainLoop/Common/BackwardCapability/Account.php new file mode 100644 index 000000000..69aa907d5 --- /dev/null +++ b/rainloop/v/0.0.0/app/src/RainLoop/Common/BackwardCapability/Account.php @@ -0,0 +1,5 @@ + true, 'UseAuth' => $this->DomainOutAuth(), + 'UsePhpMail' => $bUsePhpMail, 'Ehlo' => \MailSo\Smtp\SmtpClient::EhloHelper(), 'Host' => $this->DomainOutHost(), 'Port' => $this->DomainOutPort(), @@ -413,9 +415,11 @@ class Account $oPlugins->RunHook('filter.smtp-credentials', array($this, &$aSmtpCredentials)); + $bUsePhpMail = $aSmtpCredentials['UsePhpMail']; + $oPlugins->RunHook('event.smtp-pre-connect', array($this, $aSmtpCredentials['UseConnect'], $aSmtpCredentials)); - if ($aSmtpCredentials['UseConnect']) + if ($aSmtpCredentials['UseConnect'] && !$aSmtpCredentials['UsePhpMail'] && $oSmtpClient) { $oSmtpClient->Connect($aSmtpCredentials['Host'], $aSmtpCredentials['Port'], $aSmtpCredentials['Ehlo'], $aSmtpCredentials['Secure'], $aSmtpCredentials['VerifySsl']); @@ -424,7 +428,7 @@ class Account $oPlugins->RunHook('event.smtp-post-connect', array($this, $aSmtpCredentials['UseConnect'], $aSmtpCredentials)); $oPlugins->RunHook('event.smtp-pre-login', array($this, $aSmtpCredentials['UseAuth'], $aSmtpCredentials)); - if ($aSmtpCredentials['UseAuth']) + if ($aSmtpCredentials['UseAuth'] && !$aSmtpCredentials['UsePhpMail'] && $oSmtpClient) { $oSmtpClient->Login($aSmtpCredentials['Login'], $aSmtpCredentials['Password']); diff --git a/rainloop/v/0.0.0/app/src/RainLoop/Model/Domain.php b/rainloop/v/0.0.0/app/src/RainLoop/Model/Domain.php index 8bbc5ee6f..6cde5b158 100644 --- a/rainloop/v/0.0.0/app/src/RainLoop/Model/Domain.php +++ b/rainloop/v/0.0.0/app/src/RainLoop/Model/Domain.php @@ -58,6 +58,11 @@ class Domain */ private $bOutAuth; + /** + * @var bool + */ + private $bOutUsePhpMail; + /** * @var string */ @@ -74,10 +79,11 @@ class Domain * @param int $iOutSecure * @param bool $bOutShortLogin * @param bool $bOutAuth + * @param bool $bOutUsePhpMail = false * @param string $sWhiteList = '' */ private function __construct($sName, $sIncHost, $iIncPort, $iIncSecure, $bIncShortLogin, - $sOutHost, $iOutPort, $iOutSecure, $bOutShortLogin, $bOutAuth, $sWhiteList = '') + $sOutHost, $iOutPort, $iOutSecure, $bOutShortLogin, $bOutAuth, $bOutUsePhpMail = false, $sWhiteList = '') { $this->sName = $sName; $this->sIncHost = $sIncHost; @@ -89,6 +95,7 @@ class Domain $this->iOutSecure = $iOutSecure; $this->bOutShortLogin = $bOutShortLogin; $this->bOutAuth = $bOutAuth; + $this->bOutUsePhpMail = $bOutUsePhpMail; $this->sWhiteList = \trim($sWhiteList); } @@ -103,18 +110,19 @@ class Domain * @param int $iOutSecure * @param bool $bOutShortLogin * @param bool $bOutAuth + * @param bool $bOutUsePhpMail = false * @param string $sWhiteList = '' * * @return \RainLoop\Model\Domain */ public static function NewInstance($sName, $sIncHost, $iIncPort, $iIncSecure, $bIncShortLogin, - $sOutHost, $iOutPort, $iOutSecure, $bOutShortLogin, $bOutAuth, + $sOutHost, $iOutPort, $iOutSecure, $bOutShortLogin, $bOutAuth, $bOutUsePhpMail, $sWhiteList = '') { return new self($sName, $sIncHost, $iIncPort, $iIncSecure, $bIncShortLogin, - $sOutHost, $iOutPort, $iOutSecure, $bOutShortLogin, $bOutAuth, + $sOutHost, $iOutPort, $iOutSecure, $bOutShortLogin, $bOutAuth, $bOutUsePhpMail, $sWhiteList); } @@ -142,6 +150,7 @@ class Domain !empty($aDomain['smtp_secure']) ? $aDomain['smtp_secure'] : ''); $bOutAuth = isset($aDomain['smtp_auth']) ? (bool) $aDomain['smtp_auth'] : true; + $bOutUsePhpMail = isset($aDomain['smtp_php_mail']) ? (bool) $aDomain['smtp_php_mail'] : false; $sWhiteList = (string) (isset($aDomain['white_list']) ? $aDomain['white_list'] : ''); $bIncShortLogin = isset($aDomain['imap_short_login']) ? (bool) $aDomain['imap_short_login'] : false; @@ -149,7 +158,7 @@ class Domain $oDomain = self::NewInstance($sName, $sIncHost, $iIncPort, $iIncSecure, $bIncShortLogin, - $sOutHost, $iOutPort, $iOutSecure, $bOutShortLogin, $bOutAuth, + $sOutHost, $iOutPort, $iOutSecure, $bOutShortLogin, $bOutAuth, $bOutUsePhpMail, $sWhiteList); } @@ -199,6 +208,7 @@ class Domain 'smtp_secure = "'.self::ConstConnectionSecurityTypeToStr($this->iOutSecure).'"', 'smtp_short_login = '.($this->bOutShortLogin ? 'On' : 'Off'), 'smtp_auth = '.($this->bOutAuth ? 'On' : 'Off'), + 'smtp_php_mail = '.($this->bOutUsePhpMail ? 'On' : 'Off'), 'white_list = "'.$this->encodeIniString($this->sWhiteList).'"' )); } @@ -254,13 +264,14 @@ class Domain * @param int $iOutSecure * @param bool $bOutShortLogin * @param bool $bOutAuth + * @param bool $bOutUsePhpMail = false * @param string $sWhiteList = '' * * @return \RainLoop\Model\Domain */ public function UpdateInstance( $sIncHost, $iIncPort, $iIncSecure, $bIncShortLogin, - $sOutHost, $iOutPort, $iOutSecure, $bOutShortLogin, $bOutAuth, + $sOutHost, $iOutPort, $iOutSecure, $bOutShortLogin, $bOutAuth, $bOutUsePhpMail, $sWhiteList = '') { $this->sIncHost = \MailSo\Base\Utils::IdnToAscii($sIncHost); @@ -272,6 +283,7 @@ class Domain $this->iOutSecure = $iOutSecure; $this->bOutShortLogin = $bOutShortLogin; $this->bOutAuth = $bOutAuth; + $this->bOutUsePhpMail = $bOutUsePhpMail; $this->sWhiteList = \trim($sWhiteList); return $this; @@ -341,16 +353,6 @@ class Domain return $this->iOutSecure; } - /** - * @param bool|null $bGlobalVerify = null - * - * @return bool - */ - public function OutVerifySsl($bGlobalVerify = null) - { - return null === $bGlobalVerify ? $this->bOutVerifySsl : !!$bGlobalVerify; - } - /** * @return bool */ @@ -367,6 +369,14 @@ class Domain return $this->bOutAuth; } + /** + * @return bool + */ + public function OutUsePhpMail() + { + return $this->bOutUsePhpMail; + } + /** * @return string */ @@ -417,6 +427,7 @@ class Domain 'OutSecure' => $this->OutSecure(), 'OutShortLogin' => $this->OutShortLogin(), 'OutAuth' => $this->OutAuth(), + 'OutUsePhpMail' => $this->OutUsePhpMail(), 'WhiteList' => $this->WhiteList() ); } diff --git a/rainloop/v/0.0.0/app/src/RainLoop/PluginsNext/Manager.php b/rainloop/v/0.0.0/app/src/RainLoop/PluginsNext/Manager.php index d5889504a..cee2acc81 100644 --- a/rainloop/v/0.0.0/app/src/RainLoop/PluginsNext/Manager.php +++ b/rainloop/v/0.0.0/app/src/RainLoop/PluginsNext/Manager.php @@ -282,7 +282,7 @@ class Manager /** * @param bool $bAdmin * @param array $aAppData - * @param \RainLoop\Account|null $oAccount = null + * @param \RainLoop\Model\Account|null $oAccount = null * * @return \RainLoop\PluginsNext\Manager */ @@ -399,7 +399,7 @@ class Manager /** * @param string $sHookName * @param array $aArg = array() - * @param \RainLoop\Account|null $oAccount = null + * @param \RainLoop\Model\Account|null $oAccount = null * @param bool $bLogHook = true * * @return \RainLoop\PluginsNext\Manager diff --git a/rainloop/v/0.0.0/app/src/RainLoop/Providers/AbstractProvider.php b/rainloop/v/0.0.0/app/src/RainLoop/Providers/AbstractProvider.php index a5de37385..4b8c3596f 100644 --- a/rainloop/v/0.0.0/app/src/RainLoop/Providers/AbstractProvider.php +++ b/rainloop/v/0.0.0/app/src/RainLoop/Providers/AbstractProvider.php @@ -5,7 +5,7 @@ namespace RainLoop\Providers; abstract class AbstractProvider { /** - * @var \RainLoop\Account + * @var \RainLoop\Model\Account */ protected $oAccount; @@ -23,7 +23,7 @@ abstract class AbstractProvider } /** - * @param \RainLoop\Account $oAccount + * @param \RainLoop\Model\Account $oAccount */ public function SetAccount($oAccount) { diff --git a/rainloop/v/0.0.0/app/src/RainLoop/Providers/ChangePassword.php b/rainloop/v/0.0.0/app/src/RainLoop/Providers/ChangePassword.php index b344b227c..177cf9065 100644 --- a/rainloop/v/0.0.0/app/src/RainLoop/Providers/ChangePassword.php +++ b/rainloop/v/0.0.0/app/src/RainLoop/Providers/ChangePassword.php @@ -34,24 +34,24 @@ class ChangePassword extends \RainLoop\Providers\AbstractProvider } /** - * @param \RainLoop\Account $oAccount + * @param \RainLoop\Model\Account $oAccount * * @return bool */ public function PasswordChangePossibility($oAccount) { return $this->IsActive() && - $oAccount instanceof \RainLoop\Account && + $oAccount instanceof \RainLoop\Model\Account && $this->oDriver && $this->oDriver->PasswordChangePossibility($oAccount) ; } /** - * @param \RainLoop\Account $oAccount + * @param \RainLoop\Model\Account $oAccount * @param string $sPrevPassword * @param string $sNewPassword */ - public function ChangePassword(\RainLoop\Account $oAccount, $sPrevPassword, $sNewPassword) + public function ChangePassword(\RainLoop\Model\Account $oAccount, $sPrevPassword, $sNewPassword) { if ($this->oDriver instanceof \RainLoop\Providers\ChangePassword\ChangePasswordInterface && $this->PasswordChangePossibility($oAccount)) diff --git a/rainloop/v/0.0.0/app/src/RainLoop/Providers/ChangePassword/ChangePasswordInterface.php b/rainloop/v/0.0.0/app/src/RainLoop/Providers/ChangePassword/ChangePasswordInterface.php index faecf5707..d3a7f5318 100644 --- a/rainloop/v/0.0.0/app/src/RainLoop/Providers/ChangePassword/ChangePasswordInterface.php +++ b/rainloop/v/0.0.0/app/src/RainLoop/Providers/ChangePassword/ChangePasswordInterface.php @@ -5,18 +5,18 @@ namespace RainLoop\Providers\ChangePassword; interface ChangePasswordInterface { /** - * @param \RainLoop\Account $oAccount + * @param \RainLoop\Model\Account $oAccount * * @return bool */ public function PasswordChangePossibility($oAccount); /** - * @param \RainLoop\Account $oAccount + * @param \RainLoop\Model\Account $oAccount * @param string $sPrevPassword * @param string $sNewPassword * * @return bool */ - public function ChangePassword(\RainLoop\Account $oAccount, $sPrevPassword, $sNewPassword); + public function ChangePassword(\RainLoop\Model\Account $oAccount, $sPrevPassword, $sNewPassword); } diff --git a/rainloop/v/0.0.0/app/src/RainLoop/Providers/Domain.php b/rainloop/v/0.0.0/app/src/RainLoop/Providers/Domain.php index 79d4d4b95..11b4744e6 100644 --- a/rainloop/v/0.0.0/app/src/RainLoop/Providers/Domain.php +++ b/rainloop/v/0.0.0/app/src/RainLoop/Providers/Domain.php @@ -134,6 +134,7 @@ class Domain extends \RainLoop\Providers\AbstractProvider $iOutSecure = (int) $oActions->GetActionParam('OutSecure', \MailSo\Net\Enumerations\ConnectionSecurityType::NONE); $bOutShortLogin = '1' === (string) $oActions->GetActionParam('OutShortLogin', '0'); $bOutAuth = '1' === (string) $oActions->GetActionParam('OutAuth', '1'); + $bOutUsePhpMail = '1' === (string) $oActions->GetActionParam('OutUsePhpMail', '0'); $sWhiteList = (string) $oActions->GetActionParam('WhiteList', ''); if (0 < \strlen($sName) && 0 < strlen($sNameForTest) && false === \strpos($sName, '*')) @@ -154,7 +155,7 @@ class Domain extends \RainLoop\Providers\AbstractProvider { $oDomain->UpdateInstance( $sIncHost, $iIncPort, $iIncSecure, $bIncShortLogin, - $sOutHost, $iOutPort, $iOutSecure, $bOutShortLogin, $bOutAuth, + $sOutHost, $iOutPort, $iOutSecure, $bOutShortLogin, $bOutAuth, $bOutUsePhpMail, $sWhiteList); } } @@ -162,7 +163,7 @@ class Domain extends \RainLoop\Providers\AbstractProvider { $oDomain = \RainLoop\Model\Domain::NewInstance(0 < strlen($sNameForTest) ? $sNameForTest : $sName, $sIncHost, $iIncPort, $iIncSecure, $bIncShortLogin, - $sOutHost, $iOutPort, $iOutSecure, $bOutShortLogin, $bOutAuth, + $sOutHost, $iOutPort, $iOutSecure, $bOutShortLogin, $bOutAuth, $bOutUsePhpMail, $sWhiteList); } } diff --git a/rainloop/v/0.0.0/app/src/RainLoop/Providers/Files.php b/rainloop/v/0.0.0/app/src/RainLoop/Providers/Files.php index 41fa36f91..750a93a23 100644 --- a/rainloop/v/0.0.0/app/src/RainLoop/Providers/Files.php +++ b/rainloop/v/0.0.0/app/src/RainLoop/Providers/Files.php @@ -18,7 +18,7 @@ class Files extends \RainLoop\Providers\AbstractProvider } /** - * @param \RainLoop\Account $oAccount + * @param \RainLoop\Model\Account $oAccount * @param string $sKey * @param resource $rSource * @@ -30,7 +30,7 @@ class Files extends \RainLoop\Providers\AbstractProvider } /** - * @param \RainLoop\Account $oAccount + * @param \RainLoop\Model\Account $oAccount * @param string $sKey * @param string $sSource * @@ -42,7 +42,7 @@ class Files extends \RainLoop\Providers\AbstractProvider } /** - * @param \RainLoop\Account $oAccount + * @param \RainLoop\Model\Account $oAccount * @param string $sKey * @param string $sOpenMode = 'rb' * @@ -54,7 +54,7 @@ class Files extends \RainLoop\Providers\AbstractProvider } /** - * @param \RainLoop\Account $oAccount + * @param \RainLoop\Model\Account $oAccount * @param string $sKey * * @return string | bool @@ -65,7 +65,7 @@ class Files extends \RainLoop\Providers\AbstractProvider } /** - * @param \RainLoop\Account $oAccount + * @param \RainLoop\Model\Account $oAccount * @param string $sKey * * @return bool @@ -76,7 +76,7 @@ class Files extends \RainLoop\Providers\AbstractProvider } /** - * @param \RainLoop\Account $oAccount + * @param \RainLoop\Model\Account $oAccount * @param string $sKey * * @return int|bool @@ -87,7 +87,7 @@ class Files extends \RainLoop\Providers\AbstractProvider } /** - * @param \RainLoop\Account $oAccount + * @param \RainLoop\Model\Account $oAccount * @param string $sKey * * @return bool diff --git a/rainloop/v/0.0.0/app/src/RainLoop/Providers/Files/DefaultStorage.php b/rainloop/v/0.0.0/app/src/RainLoop/Providers/Files/DefaultStorage.php index 293813e33..10fd3239a 100644 --- a/rainloop/v/0.0.0/app/src/RainLoop/Providers/Files/DefaultStorage.php +++ b/rainloop/v/0.0.0/app/src/RainLoop/Providers/Files/DefaultStorage.php @@ -20,7 +20,7 @@ class DefaultStorage implements \RainLoop\Providers\Files\FilesInterface } /** - * @param \RainLoop\Account $oAccount + * @param \RainLoop\Model\Account $oAccount * @param string $sKey * @param resource $rSource * @@ -42,7 +42,7 @@ class DefaultStorage implements \RainLoop\Providers\Files\FilesInterface } /** - * @param \RainLoop\Account $oAccount + * @param \RainLoop\Model\Account $oAccount * @param string $sKey * @param string $sSource * @@ -55,7 +55,7 @@ class DefaultStorage implements \RainLoop\Providers\Files\FilesInterface } /** - * @param \RainLoop\Account $oAccount + * @param \RainLoop\Model\Account $oAccount * @param string $sKey * @param string $sOpenMode = 'rb' * @@ -76,7 +76,7 @@ class DefaultStorage implements \RainLoop\Providers\Files\FilesInterface } /** - * @param \RainLoop\Account $oAccount + * @param \RainLoop\Model\Account $oAccount * @param string $sKey * * @return string|bool @@ -94,7 +94,7 @@ class DefaultStorage implements \RainLoop\Providers\Files\FilesInterface } /** - * @param \RainLoop\Account $oAccount + * @param \RainLoop\Model\Account $oAccount * @param string $sKey * * @return bool @@ -112,7 +112,7 @@ class DefaultStorage implements \RainLoop\Providers\Files\FilesInterface } /** - * @param \RainLoop\Account $oAccount + * @param \RainLoop\Model\Account $oAccount * @param string $sKey * * @return int|bool @@ -130,7 +130,7 @@ class DefaultStorage implements \RainLoop\Providers\Files\FilesInterface } /** - * @param \RainLoop\Account $oAccount + * @param \RainLoop\Model\Account $oAccount * @param string $sKey * * @return bool @@ -157,7 +157,7 @@ class DefaultStorage implements \RainLoop\Providers\Files\FilesInterface } /** - * @param \RainLoop\Account $oAccount + * @param \RainLoop\Model\Account $oAccount * @param string $sKey * @param bool $bMkDir = false * diff --git a/rainloop/v/0.0.0/app/src/RainLoop/Providers/Files/FilesInterface.php b/rainloop/v/0.0.0/app/src/RainLoop/Providers/Files/FilesInterface.php index a0a9e0a87..2c86024ff 100644 --- a/rainloop/v/0.0.0/app/src/RainLoop/Providers/Files/FilesInterface.php +++ b/rainloop/v/0.0.0/app/src/RainLoop/Providers/Files/FilesInterface.php @@ -5,7 +5,7 @@ namespace RainLoop\Providers\Files; interface FilesInterface { /** - * @param \RainLoop\Account $oAccount + * @param \RainLoop\Model\Account $oAccount * @param string $sKey * @param resource $rSource * @@ -23,7 +23,7 @@ interface FilesInterface public function MoveUploadedFile($oAccount, $sKey, $sSource); /** - * @param \RainLoop\Account $oAccount + * @param \RainLoop\Model\Account $oAccount * @param string $sKey * @param string $sOpenMode = 'rb' * @@ -32,7 +32,7 @@ interface FilesInterface public function GetFile($oAccount, $sKey, $sOpenMode = 'rb'); /** - * @param \RainLoop\Account $oAccount + * @param \RainLoop\Model\Account $oAccount * @param string $sKey * * @return string|bool @@ -40,7 +40,7 @@ interface FilesInterface public function GetFileName($oAccount, $sKey); /** - * @param \RainLoop\Account $oAccount + * @param \RainLoop\Model\Account $oAccount * @param string $sKey * * @return bool @@ -48,7 +48,7 @@ interface FilesInterface public function Clear($oAccount, $sKey); /** - * @param \RainLoop\Account $oAccount + * @param \RainLoop\Model\Account $oAccount * @param string $sKey * * @return int | bool @@ -56,7 +56,7 @@ interface FilesInterface public function FileSize($oAccount, $sKey); /** - * @param \RainLoop\Account $oAccount + * @param \RainLoop\Model\Account $oAccount * @param string $sKey * * @return bool diff --git a/rainloop/v/0.0.0/app/src/RainLoop/Providers/Settings.php b/rainloop/v/0.0.0/app/src/RainLoop/Providers/Settings.php index 7c76db218..31740fb44 100644 --- a/rainloop/v/0.0.0/app/src/RainLoop/Providers/Settings.php +++ b/rainloop/v/0.0.0/app/src/RainLoop/Providers/Settings.php @@ -20,11 +20,11 @@ class Settings extends \RainLoop\Providers\AbstractProvider } /** - * @param \RainLoop\Account $oAccount + * @param \RainLoop\Model\Account $oAccount * * @return \RainLoop\Settings */ - public function Load(\RainLoop\Account $oAccount) + public function Load(\RainLoop\Model\Account $oAccount) { $oSettings = new \RainLoop\Settings(); $oSettings->InitData($this->oDriver->Load($oAccount)); @@ -32,12 +32,12 @@ class Settings extends \RainLoop\Providers\AbstractProvider } /** - * @param \RainLoop\Account $oAccount + * @param \RainLoop\Model\Account $oAccount * @param \RainLoop\Settings $oSettings * * @return bool */ - public function Save(\RainLoop\Account $oAccount, \RainLoop\Settings $oSettings) + public function Save(\RainLoop\Model\Account $oAccount, \RainLoop\Settings $oSettings) { return $this->oDriver->Save($oAccount, $oSettings->DataAsArray()); } diff --git a/rainloop/v/0.0.0/app/src/RainLoop/Providers/Settings/DefaultSettings.php b/rainloop/v/0.0.0/app/src/RainLoop/Providers/Settings/DefaultSettings.php index d4c84a10e..4a191a44f 100644 --- a/rainloop/v/0.0.0/app/src/RainLoop/Providers/Settings/DefaultSettings.php +++ b/rainloop/v/0.0.0/app/src/RainLoop/Providers/Settings/DefaultSettings.php @@ -20,11 +20,11 @@ class DefaultSettings implements \RainLoop\Providers\Settings\SettingsInterface } /** - * @param \RainLoop\Account $oAccount + * @param \RainLoop\Model\Account $oAccount * * @return array */ - public function Load(\RainLoop\Account $oAccount) + public function Load(\RainLoop\Model\Account $oAccount) { $sValue = $this->oStorageProvider->Get($oAccount, \RainLoop\Providers\Storage\Enumerations\StorageType::CONFIG, @@ -44,12 +44,12 @@ class DefaultSettings implements \RainLoop\Providers\Settings\SettingsInterface } /** - * @param \RainLoop\Account $oAccount + * @param \RainLoop\Model\Account $oAccount * @param array $aSettings * * @return bool */ - public function Save(\RainLoop\Account $oAccount, array $aSettings) + public function Save(\RainLoop\Model\Account $oAccount, array $aSettings) { return $this->oStorageProvider->Put($oAccount, \RainLoop\Providers\Storage\Enumerations\StorageType::CONFIG, diff --git a/rainloop/v/0.0.0/app/src/RainLoop/Providers/Settings/SettingsInterface.php b/rainloop/v/0.0.0/app/src/RainLoop/Providers/Settings/SettingsInterface.php index c848afe38..563d8fb9b 100644 --- a/rainloop/v/0.0.0/app/src/RainLoop/Providers/Settings/SettingsInterface.php +++ b/rainloop/v/0.0.0/app/src/RainLoop/Providers/Settings/SettingsInterface.php @@ -5,19 +5,19 @@ namespace RainLoop\Providers\Settings; interface SettingsInterface { /** - * @param \RainLoop\Account $oAccount + * @param \RainLoop\Model\Account $oAccount * * @return array */ - public function Load(\RainLoop\Account $oAccount); + public function Load(\RainLoop\Model\Account $oAccount); /** - * @param \RainLoop\Account $oAccount + * @param \RainLoop\Model\Account $oAccount * @param array $aSettings * * @return bool */ - public function Save(\RainLoop\Account $oAccount, array $aSettings); + public function Save(\RainLoop\Model\Account $oAccount, array $aSettings); /** * @param string $sEmail diff --git a/rainloop/v/0.0.0/app/src/RainLoop/Providers/Storage.php b/rainloop/v/0.0.0/app/src/RainLoop/Providers/Storage.php index 177cc2b89..f3bfa88e4 100644 --- a/rainloop/v/0.0.0/app/src/RainLoop/Providers/Storage.php +++ b/rainloop/v/0.0.0/app/src/RainLoop/Providers/Storage.php @@ -18,7 +18,7 @@ class Storage extends \RainLoop\Providers\AbstractProvider } /** - * @param \RainLoop\Account|string|null $oAccount + * @param \RainLoop\Model\Account|string|null $oAccount * @param int $iStorageType * * @return bool @@ -26,7 +26,7 @@ class Storage extends \RainLoop\Providers\AbstractProvider public function verifyAccount($oAccount, $iStorageType) { if (\RainLoop\Providers\Storage\Enumerations\StorageType::NOBODY !== $iStorageType && - !($oAccount instanceof \RainLoop\Account || \is_string($oAccount))) + !($oAccount instanceof \RainLoop\Model\Account || \is_string($oAccount))) { return false; } @@ -35,7 +35,7 @@ class Storage extends \RainLoop\Providers\AbstractProvider } /** - * @param \RainLoop\Account|string|null $oAccount + * @param \RainLoop\Model\Account|string|null $oAccount * @param int $iStorageType * @param string $sKey * @param string $sValue @@ -53,7 +53,7 @@ class Storage extends \RainLoop\Providers\AbstractProvider } /** - * @param \RainLoop\Account|string|null $oAccount + * @param \RainLoop\Model\Account|string|null $oAccount * @param int $iStorageType * @param string $sKey * @param mixed $mDefault = false @@ -71,7 +71,7 @@ class Storage extends \RainLoop\Providers\AbstractProvider } /** - * @param \RainLoop\Account|string|null $oAccount + * @param \RainLoop\Model\Account|string|null $oAccount * @param int $iStorageType * @param string $sKey * diff --git a/rainloop/v/0.0.0/app/src/RainLoop/Providers/Storage/DefaultStorage.php b/rainloop/v/0.0.0/app/src/RainLoop/Providers/Storage/DefaultStorage.php index 155943d31..7bf9e871a 100644 --- a/rainloop/v/0.0.0/app/src/RainLoop/Providers/Storage/DefaultStorage.php +++ b/rainloop/v/0.0.0/app/src/RainLoop/Providers/Storage/DefaultStorage.php @@ -20,7 +20,7 @@ class DefaultStorage implements \RainLoop\Providers\Storage\StorageInterface } /** - * @param \RainLoop\Account|string|null $oAccount + * @param \RainLoop\Model\Account|string|null $oAccount * @param int $iStorageType * @param string $sKey * @param string $sValue @@ -34,7 +34,7 @@ class DefaultStorage implements \RainLoop\Providers\Storage\StorageInterface } /** - * @param \RainLoop\Account|string|null $oAccount + * @param \RainLoop\Model\Account|string|null $oAccount * @param int $iStorageType * @param string $sKey * @param mixed $mDefault = false @@ -54,7 +54,7 @@ class DefaultStorage implements \RainLoop\Providers\Storage\StorageInterface } /** - * @param \RainLoop\Account|string|null $oAccount + * @param \RainLoop\Model\Account|string|null $oAccount * @param int $iStorageType * @param string $sKey * @@ -73,7 +73,7 @@ class DefaultStorage implements \RainLoop\Providers\Storage\StorageInterface } /** - * @param \RainLoop\Account|string|null $mAccount + * @param \RainLoop\Model\Account|string|null $mAccount * @param int $iStorageType * @param string $sKey * @param bool $bMkDir = false @@ -87,7 +87,7 @@ class DefaultStorage implements \RainLoop\Providers\Storage\StorageInterface $iStorageType = \RainLoop\Providers\Storage\Enumerations\StorageType::NOBODY; } - $sEmail = $mAccount instanceof \RainLoop\Account ? \preg_replace('/[^a-z0-9\-\.@]+/', '_', + $sEmail = $mAccount instanceof \RainLoop\Model\Account ? \preg_replace('/[^a-z0-9\-\.@]+/', '_', ('' === $mAccount->ParentEmail() ? '' : $mAccount->ParentEmail().'/').$mAccount->Email()) : ''; if (\is_string($mAccount) && empty($sEmail)) diff --git a/rainloop/v/0.0.0/app/src/RainLoop/Providers/Storage/StorageInterface.php b/rainloop/v/0.0.0/app/src/RainLoop/Providers/Storage/StorageInterface.php index b6febd8fe..8922d3018 100644 --- a/rainloop/v/0.0.0/app/src/RainLoop/Providers/Storage/StorageInterface.php +++ b/rainloop/v/0.0.0/app/src/RainLoop/Providers/Storage/StorageInterface.php @@ -5,7 +5,7 @@ namespace RainLoop\Providers\Storage; interface StorageInterface { /** - * @param \RainLoop\Account|null $oAccount + * @param \RainLoop\Model\Account|null $oAccount * @param int $iStorageType * @param string $sKey * @param string $sValue @@ -15,7 +15,7 @@ interface StorageInterface public function Put($oAccount, $iStorageType, $sKey, $sValue); /** - * @param \RainLoop\Account|null $oAccount + * @param \RainLoop\Model\Account|null $oAccount * @param int $iStorageType * @param string $sKey * @param mixed $mDefault = false @@ -25,7 +25,7 @@ interface StorageInterface public function Get($oAccount, $iStorageType, $sKey, $mDefault = false); /** - * @param \RainLoop\Account|null $oAccount + * @param \RainLoop\Model\Account|null $oAccount * @param int $iStorageType * @param string $sKey * diff --git a/rainloop/v/0.0.0/app/src/RainLoop/Providers/Suggestions.php b/rainloop/v/0.0.0/app/src/RainLoop/Providers/Suggestions.php index b436f2ca4..1e55ab192 100644 --- a/rainloop/v/0.0.0/app/src/RainLoop/Providers/Suggestions.php +++ b/rainloop/v/0.0.0/app/src/RainLoop/Providers/Suggestions.php @@ -20,12 +20,12 @@ class Suggestions extends \RainLoop\Providers\AbstractProvider } /** - * @param \RainLoop\Account $oAccount + * @param \RainLoop\Model\Account $oAccount * @param string $sQuery * * @return array */ - public function Process(\RainLoop\Account $oAccount, $sQuery) + public function Process(\RainLoop\Model\Account $oAccount, $sQuery) { return $this->oDriver && $this->IsActive() && 0 < \strlen($sQuery) ? $this->oDriver->Process($oAccount, $sQuery) : array(); } diff --git a/rainloop/v/0.0.0/app/src/RainLoop/Providers/Suggestions/SuggestionsInterface.php b/rainloop/v/0.0.0/app/src/RainLoop/Providers/Suggestions/SuggestionsInterface.php index d6b5567de..c2f2f6d5a 100644 --- a/rainloop/v/0.0.0/app/src/RainLoop/Providers/Suggestions/SuggestionsInterface.php +++ b/rainloop/v/0.0.0/app/src/RainLoop/Providers/Suggestions/SuggestionsInterface.php @@ -5,10 +5,10 @@ namespace RainLoop\Providers\Suggestions; interface SuggestionsInterface { /** - * @param \RainLoop\Account $oAccount + * @param \RainLoop\Model\Account $oAccount * @param string $sQuery * * @return array */ - public function Process(\RainLoop\Account $oAccount, $sQuery); + public function Process(\RainLoop\Model\Account $oAccount, $sQuery); } \ No newline at end of file diff --git a/rainloop/v/0.0.0/app/src/RainLoop/ServiceActions.php b/rainloop/v/0.0.0/app/src/RainLoop/ServiceActions.php index e1ab95567..ffa2d37e6 100644 --- a/rainloop/v/0.0.0/app/src/RainLoop/ServiceActions.php +++ b/rainloop/v/0.0.0/app/src/RainLoop/ServiceActions.php @@ -868,7 +868,7 @@ class ServiceActions $oAccount = $this->oActions->LoginProcess($sEmail, $sPassword); $this->oActions->AuthToken($oAccount); - $bLogout = !($oAccount instanceof \RainLoop\Account); + $bLogout = !($oAccount instanceof \RainLoop\Model\Account); } catch (\Exception $oException) { @@ -905,7 +905,7 @@ class ServiceActions { $oAccount = $this->oActions->LoginProcess($sEmail, $sPassword); $this->oActions->AuthToken($oAccount); - $bLogout = !($oAccount instanceof \RainLoop\Account); + $bLogout = !($oAccount instanceof \RainLoop\Model\Account); } catch (\Exception $oException) { @@ -940,7 +940,7 @@ class ServiceActions { $oAccount = $this->oActions->LoginProcess($sEmail, $sPassword); $this->oActions->AuthToken($oAccount); - $bLogout = !($oAccount instanceof \RainLoop\Account); + $bLogout = !($oAccount instanceof \RainLoop\Model\Account); } catch (\Exception $oException) { @@ -961,7 +961,7 @@ class ServiceActions $aResult = array( 'Action' => 'ExternalLogin', - 'Result' => $oAccount instanceof \RainLoop\Account ? true : false, + 'Result' => $oAccount instanceof \RainLoop\Model\Account ? true : false, 'ErrorCode' => 0 ); diff --git a/rainloop/v/0.0.0/app/src/RainLoop/Social.php b/rainloop/v/0.0.0/app/src/RainLoop/Social.php index 3eac958de..f4a638725 100644 --- a/rainloop/v/0.0.0/app/src/RainLoop/Social.php +++ b/rainloop/v/0.0.0/app/src/RainLoop/Social.php @@ -346,7 +346,7 @@ class Social !empty($aUserData['Email']) && isset($aUserData['Password'])) { $oAccount = $this->oActions->LoginProcess($aUserData['Email'], $aUserData['Password']); - if ($oAccount instanceof \RainLoop\Account) + if ($oAccount instanceof \RainLoop\Model\Account) { $this->oActions->AuthToken($oAccount); @@ -493,7 +493,7 @@ class Social !empty($aUserData['Email']) && isset($aUserData['Password'])) { $oAccount = $this->oActions->LoginProcess($aUserData['Email'], $aUserData['Password']); - if ($oAccount instanceof \RainLoop\Account) + if ($oAccount instanceof \RainLoop\Model\Account) { $this->oActions->AuthToken($oAccount); @@ -669,7 +669,7 @@ class Social isset($aUserData['Password'])) { $oAccount = $this->oActions->LoginProcess($aUserData['Email'], $aUserData['Password']); - if ($oAccount instanceof \RainLoop\Account) + if ($oAccount instanceof \RainLoop\Model\Account) { $this->oActions->AuthToken($oAccount); @@ -800,7 +800,7 @@ class Social } /** - * @param \RainLoop\Account|null $oAccount = null + * @param \RainLoop\Model\Account|null $oAccount = null * * @return \RainLoop\Common\RainLoopFacebookRedirectLoginHelper|null */ diff --git a/rainloop/v/0.0.0/app/templates/Views/Admin/PopupsDomain.html b/rainloop/v/0.0.0/app/templates/Views/Admin/PopupsDomain.html index 7bca9c6e5..674a1171b 100644 --- a/rainloop/v/0.0.0/app/templates/Views/Admin/PopupsDomain.html +++ b/rainloop/v/0.0.0/app/templates/Views/Admin/PopupsDomain.html @@ -50,16 +50,20 @@
-
-   - (user@domain.com → user) +
+
+
+    + (user@domain.com → user) +
+
@@ -67,51 +71,72 @@ SMTP
-
-
- Server -
- +
+
+
+ Server +
+ +
+
+ Port +
+ +
-
- Port -
- +
+
+
+ Secure +
+ +
+
+
+
+
+
+    + (user@domain.com → user) +
+
+
+
+
+
+
+
+
+    + (beta)
-
-
-
- Secure -
- -
-
-
-
-   - (user@domain.com → user) -
-