| | |
| | | $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); |
| | | } |
| | | |
| | |
| | | $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); |
| | | } |
| | | |
| | |
| | | */ |
| | | 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; |
| | | } |
| | |
| | | */ |
| | | 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; |
| | | } |
| | |
| | | */ |
| | | 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; |
| | | } |
| | |
| | | */ |
| | | 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; |
| | | } |
| | |
| | | */ |
| | | 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; |
| | | } |
| | |
| | | |
| | | $ext = $this->sieve->getExtensions(); |
| | | |
| | | if (PEAR::isError($ext)) { |
| | | if (is_a($ext, 'PEAR_Error')) { |
| | | return array(); |
| | | } |
| | | |
| | |
| | | |
| | | $list = $this->sieve->listScripts(); |
| | | |
| | | if (PEAR::isError($list)) |
| | | if (is_a($list, 'PEAR_Error')) { |
| | | return $this->_set_error(self::ERROR_OTHER); |
| | | } |
| | | |
| | | $this->list = $list; |
| | | } |
| | |
| | | |
| | | $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); |
| | |
| | | |
| | | $content = $this->sieve->getScript($name); |
| | | |
| | | if (PEAR::isError($content)) |
| | | if (is_a($content, 'PEAR_Error')) { |
| | | return $this->_set_error(self::ERROR_OTHER); |
| | | } |
| | | |
| | | return $content; |
| | | } |
| | |
| | | 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); |
| | | } |
| | | |