From: <lei...@us...> - 2012-09-27 13:58:50
|
Author: leithoff Date: Thu Sep 27 15:58:38 2012 New Revision: 40336 URL: http://svn.stylite.de/viewvc/egroupware?rev=40336&view=rev Log: more flexible method to report that a given IMAP class may support timed sieve Modified: trunk/emailadmin/inc/class.cyrusimap.inc.php trunk/emailadmin/inc/class.emailadmin_dovecot.inc.php trunk/felamimail/inc/class.uisieve.inc.php Modified: trunk/emailadmin/inc/class.cyrusimap.inc.php URL: http://svn.stylite.de/viewvc/egroupware/trunk/emailadmin/inc/class.cyrusimap.inc.php?rev=40336&r1=40335&r2=40336&view=diff ============================================================================== --- trunk/emailadmin/inc/class.cyrusimap.inc.php (original) +++ trunk/emailadmin/inc/class.cyrusimap.inc.php Thu Sep 27 15:58:38 2012 @@ -10,7 +10,7 @@ * @license http://opensource.org/licenses/gpl-license.php GPL - GNU General Public License * @version $Id$ */ - + include_once(EGW_SERVER_ROOT."/emailadmin/inc/class.defaultimap.inc.php"); /** @@ -21,8 +21,8 @@ /** * Capabilities of this class (pipe-separated): default, sieve, admin, logintypeemail */ - const CAPABILITIES = 'default|sieve|admin|logintypeemail'; - + const CAPABILITIES = 'default|sieve|timedsieve|admin|logintypeemail'; + // mailbox delimiter var $mailboxDelimiter = '.'; @@ -30,24 +30,24 @@ var $mailboxPrefix = ''; var $enableCyrusAdmin = false; - + var $cyrusAdminUsername; - + var $cyrusAdminPassword; - + /** * Updates an account - * + * * @param array $_hookValues only value for key 'account_lid' and 'new_passwd' is used */ - function addAccount($_hookValues) + function addAccount($_hookValues) { return $this->updateAccount($_hookValues); } - + /** * Delete an account - * + * * @param array $_hookValues only value for key 'account_lid' is used */ function deleteAccount($_hookValues) @@ -63,9 +63,9 @@ /** * Delete multiple (user-)mailboxes via a wildcard, eg. '%' for whole domain - * + * * Domain is the configured domain and it uses the Cyrus admin user - * + * * @return string $username='%' username containing wildcards, default '%' for all users of a domain * @return int|boolean number of deleted mailboxes on success or false on error */ @@ -86,14 +86,14 @@ list($reference,$restriction) = explode($username,$mailboxName,2); $mboxes = $this->getMailboxes($reference,$username.$restriction); //error_log(__METHOD__."('$username') getMailboxes('$reference','$username$restriction') = ".array2string($mboxes)); - + foreach($mboxes as $mbox) { // give the admin account the rights to delete this mailbox if(PEAR::isError($this->setACL($mbox, $this->adminUsername, 'lrswipcda'))) { $this->disconnect(); return false; } - + if(PEAR::isError($this->deleteMailbox($mbox))) { $this->disconnect(); return false; @@ -111,7 +111,7 @@ * @param string $_username * @return array userdata */ - function getUserData($_username) + function getUserData($_username) { if($this->_connected === true) { //error_log(__METHOD__."try to disconnect"); @@ -124,20 +124,20 @@ if($quota = $this->getQuotaByUser($_username)) { $userData['quotaLimit'] = $quota / 1024; } - - $this->disconnect(); - + + $this->disconnect(); + return $userData; } - + /** * Set information about a user * currently only supported information is the current quota - * + * * @param string $_username * @param int $_quota */ - function setUserData($_username, $_quota) + function setUserData($_username, $_quota) { if(!$this->enableCyrusAdmin) { return false; @@ -146,7 +146,7 @@ if($this->_connected === true) { $this->disconnect(); } - + // create a admin connection if(!$this->openConnection(true)) { return false; @@ -169,12 +169,12 @@ /** * Updates an account - * + * * @param array $_hookValues only value for key 'account_lid' and 'new_passwd' is used */ - function updateAccount($_hookValues) - { - if(!$this->enableCyrusAdmin) { + function updateAccount($_hookValues) + { + if(!$this->enableCyrusAdmin) { return false; } #_debug_array($_hookValues); @@ -186,7 +186,7 @@ if($this->_connected === true) { $this->disconnect(); } - + // we need a admin connection if(!$this->openConnection(true)) { return false; Modified: trunk/emailadmin/inc/class.emailadmin_dovecot.inc.php URL: http://svn.stylite.de/viewvc/egroupware/trunk/emailadmin/inc/class.emailadmin_dovecot.inc.php?rev=40336&r1=40335&r2=40336&view=diff ============================================================================== --- trunk/emailadmin/inc/class.emailadmin_dovecot.inc.php (original) +++ trunk/emailadmin/inc/class.emailadmin_dovecot.inc.php Thu Sep 27 15:58:38 2012 @@ -25,7 +25,7 @@ /** * Capabilities of this class (pipe-separated): default, sieve, admin, logintypeemail */ - const CAPABILITIES = 'default|sieve|admin|logintypeemail'; + const CAPABILITIES = 'default|sieve|timedsieve|admin|logintypeemail'; // mailbox delimiter var $mailboxDelimiter = '.'; Modified: trunk/felamimail/inc/class.uisieve.inc.php URL: http://svn.stylite.de/viewvc/egroupware/trunk/felamimail/inc/class.uisieve.inc.php?rev=40336&r1=40335&r2=40336&view=diff ============================================================================== --- trunk/felamimail/inc/class.uisieve.inc.php (original) +++ trunk/felamimail/inc/class.uisieve.inc.php Thu Sep 27 15:58:38 2012 @@ -89,7 +89,11 @@ if(($icServer instanceof defaultimap) && $icServer->enableSieve) { $this->bosieve =& $icServer; - $this->timed_vacation = ($icServer instanceof cyrusimap) && $icServer->enableCyrusAdmin && + $serverclass = gettype($icServer); + $classsupportstimedsieve = false; + if (!empty($serverclass) && stripos(constant($serverclass.'::CAPABILITIES'),'timedsieve') !== false) $classsupportstimedsieve = true; + + $this->timed_vacation = $classsupportstimedsieve && $icServer->enableCyrusAdmin && $icServer->adminUsername && $icServer->adminPassword; } else { die('Sieve not activated'); |