Esempio n. 1
0
 /**
  * @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;
 }