/** * @param \RainLoop\Model\Account $oAccount * @param array $aFilters * @param string $sRaw = '' * @param bool $bRawIsActive = false * * @return bool */ public function Save($oAccount, $aFilters, $sRaw = '', $bRawIsActive = false) { $oSieveClient = \MailSo\Sieve\ManageSieveClient::NewInstance()->SetLogger($this->oLogger); if ($oAccount->SieveConnectAndLoginHelper($this->oPlugins, $oSieveClient, $this->oConfig)) { $aList = $oSieveClient->ListScripts(); if ($bRawIsActive) { if (!empty($sRaw)) { $oSieveClient->PutScript(self::SIEVE_FILE_NAME_RAW, $sRaw); $oSieveClient->SetActiveScript(self::SIEVE_FILE_NAME_RAW); } else { if (isset($aList[self::SIEVE_FILE_NAME_RAW])) { $oSieveClient->DeleteScript(self::SIEVE_FILE_NAME_RAW); } } } else { $sUserFilter = $this->collectionToFileString($aFilters); if (!empty($sUserFilter)) { $oSieveClient->PutScript(self::SIEVE_FILE_NAME, $sUserFilter); $oSieveClient->SetActiveScript(self::SIEVE_FILE_NAME); } else { if (isset($aList[self::SIEVE_FILE_NAME])) { $oSieveClient->DeleteScript(self::SIEVE_FILE_NAME); } } } $oSieveClient->LogoutAndDisconnect(); return true; } return false; }