Aleksander Machniak
2015-02-26 b59b72cc3028cc0514e951f135d8bfe7efcaaa6f
plugins/managesieve/lib/Roundcube/rcube_sieve.php
@@ -68,7 +68,9 @@
            $this->sieve->setDebug(true, array($this, 'debug_handler'));
        }
        if (PEAR::isError($this->sieve->connect($host, $port, $options, $usetls))) {
        $result = $this->sieve->connect($host, $port, $options, $usetls);
        if (is_a($result, 'PEAR_Error')) {
            return $this->_set_error(self::ERROR_CONNECTION);
        }
@@ -78,9 +80,9 @@
            $password = $auth_pw;
        }
        if (PEAR::isError($this->sieve->login($username, $password,
            $auth_type ? strtoupper($auth_type) : null, $authz))
        ) {
        $result = $this->sieve->login($username, $password, $auth_type ? strtoupper($auth_type) : null, $authz);
        if (is_a($result, 'PEAR_Error')) {
            return $this->_set_error(self::ERROR_LOGIN);
        }
@@ -115,22 +117,28 @@
     */
    public function save($name = null)
    {
        if (!$this->sieve)
        if (!$this->sieve) {
            return $this->_set_error(self::ERROR_INTERNAL);
        }
        if (!$this->script)
        if (!$this->script) {
            return $this->_set_error(self::ERROR_INTERNAL);
        }
        if (!$name)
        if (!$name) {
            $name = $this->current;
        }
        $script = $this->script->as_text();
        if (!$script)
        if (!$script) {
            $script = '/* empty script */';
        }
        if (PEAR::isError($this->sieve->installScript($name, $script)))
        $result = $this->sieve->installScript($name, $script);
        if (is_a($result, 'PEAR_Error')) {
            return $this->_set_error(self::ERROR_INSTALL);
        }
        return true;
    }
@@ -140,14 +148,19 @@
     */
    public function save_script($name, $content = null)
    {
        if (!$this->sieve)
        if (!$this->sieve) {
            return $this->_set_error(self::ERROR_INTERNAL);
        }
        if (!$content)
        if (!$content) {
            $content = '/* empty script */';
        }
        if (PEAR::isError($this->sieve->installScript($name, $content)))
        $result = $this->sieve->installScript($name, $content);
        if (is_a($result, 'PEAR_Error')) {
            return $this->_set_error(self::ERROR_INSTALL);
        }
        return true;
    }
@@ -157,14 +170,19 @@
     */
    public function activate($name = null)
    {
        if (!$this->sieve)
        if (!$this->sieve) {
            return $this->_set_error(self::ERROR_INTERNAL);
        }
        if (!$name)
        if (!$name) {
            $name = $this->current;
        }
        if (PEAR::isError($this->sieve->setActive($name)))
        $result = $this->sieve->setActive($name);
        if (is_a($result, 'PEAR_Error')) {
            return $this->_set_error(self::ERROR_ACTIVATE);
        }
        return true;
    }
@@ -174,11 +192,15 @@
     */
    public function deactivate()
    {
        if (!$this->sieve)
        if (!$this->sieve) {
            return $this->_set_error(self::ERROR_INTERNAL);
        }
        if (PEAR::isError($this->sieve->setActive('')))
        $result = $this->sieve->setActive('');
        if (is_a($result, 'PEAR_Error')) {
            return $this->_set_error(self::ERROR_DEACTIVATE);
        }
        return true;
    }
@@ -188,22 +210,32 @@
     */
    public function remove($name = null)
    {
        if (!$this->sieve)
        if (!$this->sieve) {
            return $this->_set_error(self::ERROR_INTERNAL);
        }
        if (!$name)
        if (!$name) {
            $name = $this->current;
        }
        // script must be deactivated first
        if ($name == $this->sieve->getActive())
            if (PEAR::isError($this->sieve->setActive('')))
        if ($name == $this->sieve->getActive()) {
            $result = $this->sieve->setActive('');
            if (is_a($result, 'PEAR_Error')) {
                return $this->_set_error(self::ERROR_DELETE);
            }
        }
        if (PEAR::isError($this->sieve->removeScript($name)))
        $result = $this->sieve->removeScript($name);
        if (is_a($result, 'PEAR_Error')) {
            return $this->_set_error(self::ERROR_DELETE);
        }
        if ($name == $this->current)
        if ($name == $this->current) {
            $this->current = null;
        }
        return true;
    }
@@ -221,7 +253,7 @@
        $ext = $this->sieve->getExtensions();
        if (PEAR::isError($ext)) {
        if (is_a($ext, 'PEAR_Error')) {
            return array();
        }
@@ -250,8 +282,9 @@
            $list = $this->sieve->listScripts();
            if (PEAR::isError($list))
            if (is_a($list, 'PEAR_Error')) {
                return $this->_set_error(self::ERROR_OTHER);
            }
            $this->list = $list;
        }
@@ -283,8 +316,9 @@
        $script = $this->sieve->getScript($name);
        if (PEAR::isError($script))
        if (is_a($script, 'PEAR_Error')) {
            return $this->_set_error(self::ERROR_OTHER);
        }
        // try to parse from Roundcube format
        $this->script = $this->_parse($script);
@@ -349,8 +383,9 @@
        $content = $this->sieve->getScript($name);
        if (PEAR::isError($content))
        if (is_a($content, 'PEAR_Error')) {
            return $this->_set_error(self::ERROR_OTHER);
        }
        return $content;
    }
@@ -366,10 +401,12 @@
        if ($copy) {
            $content = $this->sieve->getScript($copy);
            if (PEAR::isError($content))
            if (is_a($content, 'PEAR_Error')) {
                return $this->_set_error(self::ERROR_OTHER);
            }
        }
        return $this->save_script($name, $content);
    }