/** * Sets a script running on the backend. * * @param array $script The filter script information. Passed elements: * - 'name': (string) the script name. * - 'recipes': (array) the filter recipe objects. * - 'script': (string) the filter script. * * @throws Ingo_Exception */ public function setScriptActive($script) { $this->_connect(); try { if (!strlen($script['script'])) { $this->_sieve->setActive(''); $this->_sieve->removeScript($script['name']); return; } if (!$this->_sieve->hasSpace($script['name'], strlen($script['script']))) { throw new Ingo_Exception(_("Not enough free space on the server.")); } $this->_sieve->installScript($script['name'], $script['script'], true); } catch (ManageSieve\Exception $e) { throw new Ingo_Exception($e); } }