mirror of
https://github.com/EGroupware/egroupware.git
synced 2025-02-02 19:39:26 +01:00
- moved plugin capabilities from emailadmin_bo to plugins
- moved sieve support and configuration from cyrusimap to defaultimap, as there are other imap server supporting Sieve
This commit is contained in:
parent
f2913cce54
commit
fd5489d458
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
/**
|
||||
* EGroupware EMailAdmin: Support for Cyrus IMAP (or other IMAP Server supporting Sieve)
|
||||
* EGroupware EMailAdmin: Support for Cyrus IMAP
|
||||
*
|
||||
* @link http://www.stylite.de
|
||||
* @package emailadmin
|
||||
@ -15,12 +15,14 @@ include_once(EGW_SERVER_ROOT."/emailadmin/inc/class.defaultimap.inc.php");
|
||||
|
||||
/**
|
||||
* Manages connection to Cyrus IMAP server
|
||||
*
|
||||
* Also proxies Sieve calls to emailadmin_sieve (eg. it behaves like the former felamimail bosieve),
|
||||
* to allow IMAP plugins to also manage Sieve connection.
|
||||
*/
|
||||
class cyrusimap extends defaultimap
|
||||
{
|
||||
/**
|
||||
* Capabilities of this class (pipe-separated): default, sieve, admin, logintypeemail
|
||||
*/
|
||||
const CAPABILITIES = 'default|sieve|admin|logintypeemail';
|
||||
|
||||
// mailbox delimiter
|
||||
var $mailboxDelimiter = '.';
|
||||
|
||||
@ -33,12 +35,6 @@ class cyrusimap extends defaultimap
|
||||
|
||||
var $cyrusAdminPassword;
|
||||
|
||||
var $enableSieve = false;
|
||||
|
||||
var $sieveHost;
|
||||
|
||||
var $sievePort;
|
||||
|
||||
function addAccount($_hookValues)
|
||||
{
|
||||
return $this->updateAccount($_hookValues);
|
||||
@ -167,50 +163,4 @@ class cyrusimap extends defaultimap
|
||||
}
|
||||
$this->disconnect();
|
||||
}
|
||||
|
||||
/**
|
||||
* Instance of emailadmin_sieve
|
||||
*
|
||||
* @var emailadmin_sieve
|
||||
*/
|
||||
private $sieve;
|
||||
|
||||
public $scriptName;
|
||||
public $error;
|
||||
|
||||
//public $error;
|
||||
|
||||
/**
|
||||
* Proxy former felamimail bosieve methods to internal emailadmin_sieve instance
|
||||
*
|
||||
* @param string $name
|
||||
* @param array $params
|
||||
*/
|
||||
public function __call($name,array $params=null)
|
||||
{
|
||||
switch($name)
|
||||
{
|
||||
case 'installScript':
|
||||
case 'getScript':
|
||||
case 'setActive':
|
||||
case 'setEmailNotification':
|
||||
case 'getEmailNotification':
|
||||
case 'setRules':
|
||||
case 'getRules':
|
||||
case 'retrieveRules':
|
||||
case 'getVacation':
|
||||
case 'setVacation':
|
||||
case 'setVacationUser':
|
||||
if (is_null($this->sieve))
|
||||
{
|
||||
$this->sieve = new emailadmin_sieve($this);
|
||||
$this->scriptName =& $this->sieve->scriptName;
|
||||
$this->error =& $this->sieve->error;
|
||||
}
|
||||
$ret = call_user_func_array(array($this->sieve,$name),$params);
|
||||
error_log(__CLASS__.'->'.$name.'('.array2string($params).') returns '.array2string($ret));
|
||||
return $ret;
|
||||
}
|
||||
throw new egw_exception_wrong_parameter("No method '$name' implemented!");
|
||||
}
|
||||
}
|
||||
|
@ -1,180 +1,182 @@
|
||||
<?php
|
||||
/***************************************************************************\
|
||||
* EGroupWare - EMailAdmin *
|
||||
* http://www.egroupware.org *
|
||||
* Written by : Lars Kneschke [lkneschke@linux-at-work.de] *
|
||||
* ------------------------------------------------- *
|
||||
* This program is free software; you can redistribute it and/or modify it *
|
||||
* under the terms of the GNU General Public License as published by the *
|
||||
* Free Software Foundation; either version 2 of the License, or (at your *
|
||||
* option) any later version. *
|
||||
\***************************************************************************/
|
||||
/* $Id: class.cyrusimap.inc.php,v 1.9 2005/12/02 15:44:31 ralfbecker Exp $ */
|
||||
/**
|
||||
* EGroupware EMailAdmin: Support for DBMail IMAP with dbmailUser LDAP schema
|
||||
*
|
||||
* @link http://www.stylite.de
|
||||
* @package emailadmin
|
||||
* @author Ralf Becker <rb@stylite.de>
|
||||
* @author Klaus Leithoff <kl@stylite.de>
|
||||
* @author Lars Kneschke
|
||||
* @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");
|
||||
include_once(EGW_SERVER_ROOT."/emailadmin/inc/class.defaultimap.inc.php");
|
||||
|
||||
/**
|
||||
* Support for DBMail IMAP with qmailUser LDAP schema
|
||||
*
|
||||
* @todo base this class on dbmailqmailuser or the other way around
|
||||
*/
|
||||
class dbmaildbmailuser extends defaultimap
|
||||
{
|
||||
/**
|
||||
* Capabilities of this class (pipe-separated): default, sieve, admin, logintypeemail
|
||||
*/
|
||||
const CAPABILITIES = 'default|sieve';
|
||||
|
||||
class dbmaildbmailuser extends defaultimap {
|
||||
var $enableSieve = false;
|
||||
function addAccount($_hookValues) {
|
||||
return $this->updateAccount($_hookValues);
|
||||
}
|
||||
|
||||
#function deleteAccount($_hookValues) {
|
||||
#}
|
||||
function getUserData($_username) {
|
||||
$userData = array();
|
||||
|
||||
var $sieveHost;
|
||||
$ds = $GLOBALS['egw']->ldap->ldapConnect(
|
||||
$GLOBALS['egw_info']['server']['ldap_host'],
|
||||
$GLOBALS['egw_info']['server']['ldap_root_dn'],
|
||||
$GLOBALS['egw_info']['server']['ldap_root_pw']
|
||||
);
|
||||
|
||||
var $sievePort;
|
||||
|
||||
function addAccount($_hookValues) {
|
||||
return $this->updateAccount($_hookValues);
|
||||
}
|
||||
|
||||
#function deleteAccount($_hookValues) {
|
||||
#}
|
||||
function getUserData($_username) {
|
||||
$userData = array();
|
||||
|
||||
$ds = $GLOBALS['egw']->ldap->ldapConnect(
|
||||
$GLOBALS['egw_info']['server']['ldap_host'],
|
||||
$GLOBALS['egw_info']['server']['ldap_root_dn'],
|
||||
$GLOBALS['egw_info']['server']['ldap_root_pw']
|
||||
);
|
||||
|
||||
if(!is_resource($ds)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$filter = '(&(objectclass=posixaccount)(uid='. $_username .')(dbmailGID='. sprintf("%u", crc32($GLOBALS['egw_info']['server']['install_id'])) .'))';
|
||||
$justthese = array('dn', 'objectclass', 'mailQuota');
|
||||
if($sri = ldap_search($ds, $GLOBALS['egw_info']['server']['ldap_context'], $filter, $justthese)) {
|
||||
|
||||
if($info = ldap_get_entries($ds, $sri)) {
|
||||
if(isset($info[0]['mailquota'][0])) {
|
||||
$userData['quotaLimit'] = $info[0]['mailquota'][0] / 1048576;
|
||||
}
|
||||
}
|
||||
}
|
||||
return $userData;
|
||||
if(!is_resource($ds)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
function updateAccount($_hookValues) {
|
||||
if(!$uidnumber = (int)$_hookValues['account_id']) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$ds = $GLOBALS['egw']->ldap->ldapConnect(
|
||||
$GLOBALS['egw_info']['server']['ldap_host'],
|
||||
$GLOBALS['egw_info']['server']['ldap_root_dn'],
|
||||
$GLOBALS['egw_info']['server']['ldap_root_pw']
|
||||
);
|
||||
|
||||
if(!is_resource($ds)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$filter = '(&(objectclass=posixaccount)(uidnumber='. $uidnumber .'))';
|
||||
$justthese = array('dn', 'objectclass', 'dbmailUID', 'dbmailGID', 'mail');
|
||||
$sri = ldap_search($ds, $GLOBALS['egw_info']['server']['ldap_context'], $filter, $justthese);
|
||||
$filter = '(&(objectclass=posixaccount)(uid='. $_username .')(dbmailGID='. sprintf("%u", crc32($GLOBALS['egw_info']['server']['install_id'])) .'))';
|
||||
$justthese = array('dn', 'objectclass', 'mailQuota');
|
||||
if($sri = ldap_search($ds, $GLOBALS['egw_info']['server']['ldap_context'], $filter, $justthese)) {
|
||||
|
||||
if($info = ldap_get_entries($ds, $sri)) {
|
||||
if((!in_array('dbmailuser',$info[0]['objectclass']) && !in_array('dbmailUser',$info[0]['objectclass'])) && $info[0]['mail']) {
|
||||
$newData['objectclass'] = $info[0]['objectclass'];
|
||||
unset($newData['objectclass']['count']);
|
||||
$newData['objectclass'][] = 'dbmailuser';
|
||||
sort($newData['objectclass']);
|
||||
$newData['dbmailGID'] = sprintf("%u", crc32($GLOBALS['egw_info']['server']['install_id']));
|
||||
$newData['dbmailUID'] = (!empty($this->domainName)) ? $_hookValues['account_lid'] .'@'. $this->domainName : $_hookValues['account_lid'];
|
||||
if(isset($info[0]['mailquota'][0])) {
|
||||
$userData['quotaLimit'] = $info[0]['mailquota'][0] / 1048576;
|
||||
}
|
||||
}
|
||||
}
|
||||
return $userData;
|
||||
}
|
||||
|
||||
function updateAccount($_hookValues) {
|
||||
if(!$uidnumber = (int)$_hookValues['account_id']) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$ds = $GLOBALS['egw']->ldap->ldapConnect(
|
||||
$GLOBALS['egw_info']['server']['ldap_host'],
|
||||
$GLOBALS['egw_info']['server']['ldap_root_dn'],
|
||||
$GLOBALS['egw_info']['server']['ldap_root_pw']
|
||||
);
|
||||
|
||||
if(!is_resource($ds)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$filter = '(&(objectclass=posixaccount)(uidnumber='. $uidnumber .'))';
|
||||
$justthese = array('dn', 'objectclass', 'dbmailUID', 'dbmailGID', 'mail');
|
||||
$sri = ldap_search($ds, $GLOBALS['egw_info']['server']['ldap_context'], $filter, $justthese);
|
||||
|
||||
if($info = ldap_get_entries($ds, $sri)) {
|
||||
if((!in_array('dbmailuser',$info[0]['objectclass']) && !in_array('dbmailUser',$info[0]['objectclass'])) && $info[0]['mail']) {
|
||||
$newData['objectclass'] = $info[0]['objectclass'];
|
||||
unset($newData['objectclass']['count']);
|
||||
$newData['objectclass'][] = 'dbmailuser';
|
||||
sort($newData['objectclass']);
|
||||
$newData['dbmailGID'] = sprintf("%u", crc32($GLOBALS['egw_info']['server']['install_id']));
|
||||
$newData['dbmailUID'] = (!empty($this->domainName)) ? $_hookValues['account_lid'] .'@'. $this->domainName : $_hookValues['account_lid'];
|
||||
|
||||
if(!ldap_modify($ds, $info[0]['dn'], $newData)) {
|
||||
#print ldap_error($ds);
|
||||
}
|
||||
|
||||
return true;
|
||||
} else {
|
||||
$newData = array();
|
||||
$newData['dbmailUID'] = (!empty($this->domainName)) ? $_hookValues['account_lid'] .'@'. $this->domainName : $_hookValues['account_lid'];
|
||||
$newData['dbmailGID'] = sprintf("%u", crc32($GLOBALS['egw_info']['server']['install_id']));
|
||||
|
||||
if(!ldap_modify($ds, $info[0]['dn'], $newData)) {
|
||||
print ldap_error($ds);
|
||||
_debug_array($newData);
|
||||
exit;
|
||||
#return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
function setUserData($_username, $_quota) {
|
||||
$ds = $GLOBALS['egw']->ldap->ldapConnect(
|
||||
$GLOBALS['egw_info']['server']['ldap_host'],
|
||||
$GLOBALS['egw_info']['server']['ldap_root_dn'],
|
||||
$GLOBALS['egw_info']['server']['ldap_root_pw']
|
||||
);
|
||||
|
||||
if(!is_resource($ds)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$filter = '(&(objectclass=posixaccount)(uid='. $_username .'))';
|
||||
$justthese = array('dn', 'objectclass', 'dbmailGID', 'dbmailUID', 'mail');
|
||||
$sri = ldap_search($ds, $GLOBALS['egw_info']['server']['ldap_context'], $filter, $justthese);
|
||||
|
||||
if($info = ldap_get_entries($ds, $sri)) {
|
||||
$validLDAPConfig = false;
|
||||
if(in_array('dbmailuser',$info[0]['objectclass']) || in_array('dbmailUser',$info[0]['objectclass'])) {
|
||||
$validLDAPConfig = true;
|
||||
}
|
||||
|
||||
if(!in_array('dbmailuser',$info[0]['objectclass']) && !in_array('dbmailUser',$info[0]['objectclass']) && $info[0]['mail']) {
|
||||
$newData['objectclass'] = $info[0]['objectclass'];
|
||||
unset($newData['objectclass']['count']);
|
||||
$newData['objectclass'][] = 'dbmailUser';
|
||||
sort($newData['objectclass']);
|
||||
$newData['dbmailGID'] = sprintf("%u", crc32($GLOBALS['egw_info']['server']['install_id']));
|
||||
$newData['dbmailUID'] = (!empty($this->domainName)) ? $_username .'@'. $this->domainName : $_username;
|
||||
|
||||
if(ldap_modify($ds, $info[0]['dn'], $newData)) {
|
||||
$validLDAPConfig = true;
|
||||
}
|
||||
} else {
|
||||
if ((in_array('dbmailuser',$info[0]['objectclass']) || in_array('dbmailUser',$info[0]['objectclass'])) && !$info[0]['dbmailuid']) {
|
||||
$newData = array();
|
||||
$newData['dbmailUID'] = (!empty($this->domainName)) ? $_username .'@'. $this->domainName : $_username;
|
||||
|
||||
if(!ldap_modify($ds, $info[0]['dn'], $newData)) {
|
||||
#print ldap_error($ds);
|
||||
#return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
} else {
|
||||
}
|
||||
|
||||
if ((in_array('dbmailuser',$info[0]['objectclass']) || in_array('dbmailUser',$info[0]['objectclass'])) && !$info[0]['dbmailgid']) {
|
||||
$newData = array();
|
||||
$newData['dbmailUID'] = (!empty($this->domainName)) ? $_hookValues['account_lid'] .'@'. $this->domainName : $_hookValues['account_lid'];
|
||||
$newData['dbmailGID'] = sprintf("%u", crc32($GLOBALS['egw_info']['server']['install_id']));
|
||||
|
||||
|
||||
if(!ldap_modify($ds, $info[0]['dn'], $newData)) {
|
||||
print ldap_error($ds);
|
||||
_debug_array($newData);
|
||||
exit;
|
||||
#print ldap_error($ds);
|
||||
#return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
function setUserData($_username, $_quota) {
|
||||
$ds = $GLOBALS['egw']->ldap->ldapConnect(
|
||||
$GLOBALS['egw_info']['server']['ldap_host'],
|
||||
$GLOBALS['egw_info']['server']['ldap_root_dn'],
|
||||
$GLOBALS['egw_info']['server']['ldap_root_pw']
|
||||
);
|
||||
|
||||
if($validLDAPConfig) {
|
||||
$newData = array();
|
||||
|
||||
if(!is_resource($ds)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$filter = '(&(objectclass=posixaccount)(uid='. $_username .'))';
|
||||
$justthese = array('dn', 'objectclass', 'dbmailGID', 'dbmailUID', 'mail');
|
||||
$sri = ldap_search($ds, $GLOBALS['egw_info']['server']['ldap_context'], $filter, $justthese);
|
||||
|
||||
if($info = ldap_get_entries($ds, $sri)) {
|
||||
$validLDAPConfig = false;
|
||||
if(in_array('dbmailuser',$info[0]['objectclass']) || in_array('dbmailUser',$info[0]['objectclass'])) {
|
||||
$validLDAPConfig = true;
|
||||
}
|
||||
|
||||
if(!in_array('dbmailuser',$info[0]['objectclass']) && !in_array('dbmailUser',$info[0]['objectclass']) && $info[0]['mail']) {
|
||||
$newData['objectclass'] = $info[0]['objectclass'];
|
||||
unset($newData['objectclass']['count']);
|
||||
$newData['objectclass'][] = 'dbmailUser';
|
||||
sort($newData['objectclass']);
|
||||
$newData['dbmailGID'] = sprintf("%u", crc32($GLOBALS['egw_info']['server']['install_id']));
|
||||
$newData['dbmailUID'] = (!empty($this->domainName)) ? $_username .'@'. $this->domainName : $_username;
|
||||
|
||||
if(ldap_modify($ds, $info[0]['dn'], $newData)) {
|
||||
$validLDAPConfig = true;
|
||||
}
|
||||
if((int)$_quota >= 0) {
|
||||
$newData['mailQuota'] = (int)$_quota * 1048576;
|
||||
} else {
|
||||
if ((in_array('dbmailuser',$info[0]['objectclass']) || in_array('dbmailUser',$info[0]['objectclass'])) && !$info[0]['dbmailuid']) {
|
||||
$newData = array();
|
||||
$newData['dbmailUID'] = (!empty($this->domainName)) ? $_username .'@'. $this->domainName : $_username;
|
||||
|
||||
if(!ldap_modify($ds, $info[0]['dn'], $newData)) {
|
||||
#print ldap_error($ds);
|
||||
#return false;
|
||||
}
|
||||
}
|
||||
|
||||
if ((in_array('dbmailuser',$info[0]['objectclass']) || in_array('dbmailUser',$info[0]['objectclass'])) && !$info[0]['dbmailgid']) {
|
||||
$newData = array();
|
||||
$newData['dbmailGID'] = sprintf("%u", crc32($GLOBALS['egw_info']['server']['install_id']));
|
||||
|
||||
if(!ldap_modify($ds, $info[0]['dn'], $newData)) {
|
||||
#print ldap_error($ds);
|
||||
#return false;
|
||||
}
|
||||
}
|
||||
$newData['mailQuota'] = array();
|
||||
}
|
||||
|
||||
if($validLDAPConfig) {
|
||||
$newData = array();
|
||||
|
||||
if((int)$_quota >= 0) {
|
||||
$newData['mailQuota'] = (int)$_quota * 1048576;
|
||||
} else {
|
||||
$newData['mailQuota'] = array();
|
||||
}
|
||||
|
||||
if(!ldap_modify($ds, $info[0]['dn'], $newData)) {
|
||||
#print ldap_error($ds);
|
||||
return false;
|
||||
}
|
||||
|
||||
if(!ldap_modify($ds, $info[0]['dn'], $newData)) {
|
||||
#print ldap_error($ds);
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
?>
|
||||
}
|
||||
|
@ -1,92 +1,137 @@
|
||||
<?php
|
||||
/***************************************************************************\
|
||||
* EGroupWare - EMailAdmin *
|
||||
* http://www.egroupware.org *
|
||||
* Written by : Lars Kneschke [lkneschke@linux-at-work.de] *
|
||||
* ------------------------------------------------- *
|
||||
* This program is free software; you can redistribute it and/or modify it *
|
||||
* under the terms of the GNU General Public License as published by the *
|
||||
* Free Software Foundation; either version 2 of the License, or (at your *
|
||||
* option) any later version. *
|
||||
\***************************************************************************/
|
||||
/* $Id: class.cyrusimap.inc.php,v 1.9 2005/12/02 15:44:31 ralfbecker Exp $ */
|
||||
/**
|
||||
* EGroupware EMailAdmin: Support for DBMail IMAP with qmailUser LDAP schema
|
||||
*
|
||||
* @link http://www.stylite.de
|
||||
* @package emailadmin
|
||||
* @author Ralf Becker <rb@stylite.de>
|
||||
* @author Klaus Leithoff <kl@stylite.de>
|
||||
* @author Lars Kneschke
|
||||
* @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");
|
||||
include_once(EGW_SERVER_ROOT."/emailadmin/inc/class.defaultimap.inc.php");
|
||||
|
||||
/**
|
||||
* Support for DBMail IMAP with qmailUser LDAP schema
|
||||
*
|
||||
* @todo base this class on dbmaildbmailuser or the other way around
|
||||
*/
|
||||
class dbmailqmailuser extends defaultimap
|
||||
{
|
||||
/**
|
||||
* Capabilities of this class (pipe-separated): default, sieve, admin, logintypeemail
|
||||
*/
|
||||
const CAPABILITIES = 'default|sieve';
|
||||
|
||||
class dbmailqmailuser extends defaultimap {
|
||||
var $enableSieve = false;
|
||||
function addAccount($_hookValues) {
|
||||
return $this->updateAccount($_hookValues);
|
||||
}
|
||||
|
||||
#function deleteAccount($_hookValues) {
|
||||
#}
|
||||
function getUserData($_username) {
|
||||
$userData = array();
|
||||
|
||||
var $sieveHost;
|
||||
$ds = $GLOBALS['egw']->ldap->ldapConnect(
|
||||
$GLOBALS['egw_info']['server']['ldap_host'],
|
||||
$GLOBALS['egw_info']['server']['ldap_root_dn'],
|
||||
$GLOBALS['egw_info']['server']['ldap_root_pw']
|
||||
);
|
||||
|
||||
var $sievePort;
|
||||
|
||||
function addAccount($_hookValues) {
|
||||
return $this->updateAccount($_hookValues);
|
||||
if(!is_resource($ds)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
#function deleteAccount($_hookValues) {
|
||||
#}
|
||||
function getUserData($_username) {
|
||||
$userData = array();
|
||||
|
||||
$ds = $GLOBALS['egw']->ldap->ldapConnect(
|
||||
$GLOBALS['egw_info']['server']['ldap_host'],
|
||||
$GLOBALS['egw_info']['server']['ldap_root_dn'],
|
||||
$GLOBALS['egw_info']['server']['ldap_root_pw']
|
||||
);
|
||||
|
||||
if(!is_resource($ds)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$filter = '(&(objectclass=posixaccount)(uid='. $_username .')(qmailGID='. sprintf("%u", crc32($GLOBALS['egw_info']['server']['install_id'])) .'))';
|
||||
$justthese = array('dn', 'objectclass', 'mailQuota');
|
||||
if($sri = ldap_search($ds, $GLOBALS['egw_info']['server']['ldap_context'], $filter, $justthese)) {
|
||||
$filter = '(&(objectclass=posixaccount)(uid='. $_username .')(qmailGID='. sprintf("%u", crc32($GLOBALS['egw_info']['server']['install_id'])) .'))';
|
||||
$justthese = array('dn', 'objectclass', 'mailQuota');
|
||||
if($sri = ldap_search($ds, $GLOBALS['egw_info']['server']['ldap_context'], $filter, $justthese)) {
|
||||
|
||||
if($info = ldap_get_entries($ds, $sri)) {
|
||||
if(isset($info[0]['mailquota'][0])) {
|
||||
$userData['quotaLimit'] = $info[0]['mailquota'][0] / 1048576;
|
||||
}
|
||||
if($info = ldap_get_entries($ds, $sri)) {
|
||||
if(isset($info[0]['mailquota'][0])) {
|
||||
$userData['quotaLimit'] = $info[0]['mailquota'][0] / 1048576;
|
||||
}
|
||||
}
|
||||
return $userData;
|
||||
}
|
||||
return $userData;
|
||||
}
|
||||
|
||||
function updateAccount($_hookValues) {
|
||||
if(!$uidnumber = (int)$_hookValues['account_id']) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$ds = $GLOBALS['egw']->ldap->ldapConnect(
|
||||
$GLOBALS['egw_info']['server']['ldap_host'],
|
||||
$GLOBALS['egw_info']['server']['ldap_root_dn'],
|
||||
$GLOBALS['egw_info']['server']['ldap_root_pw']
|
||||
);
|
||||
|
||||
if(!is_resource($ds)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
function updateAccount($_hookValues) {
|
||||
if(!$uidnumber = (int)$_hookValues['account_id']) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$ds = $GLOBALS['egw']->ldap->ldapConnect(
|
||||
$GLOBALS['egw_info']['server']['ldap_host'],
|
||||
$GLOBALS['egw_info']['server']['ldap_root_dn'],
|
||||
$GLOBALS['egw_info']['server']['ldap_root_pw']
|
||||
);
|
||||
|
||||
if(!is_resource($ds)) {
|
||||
return false;
|
||||
}
|
||||
$filter = '(&(objectclass=posixaccount)(uidnumber='. $uidnumber .'))';
|
||||
$justthese = array('dn', 'objectclass', 'qmailUID', 'qmailGID', 'mail');
|
||||
$sri = ldap_search($ds, $GLOBALS['egw_info']['server']['ldap_context'], $filter, $justthese);
|
||||
|
||||
if($info = ldap_get_entries($ds, $sri)) {
|
||||
if(!in_array('qmailuser',$info[0]['objectclass']) && $info[0]['email']) {
|
||||
$newData['objectclass'] = $info[0]['objectclass'];
|
||||
unset($newData['objectclass']['count']);
|
||||
$newData['objectclass'][] = 'qmailuser';
|
||||
sort($newData['objectclass']);
|
||||
$newData['qmailGID'] = sprintf("%u", crc32($GLOBALS['egw_info']['server']['install_id']));
|
||||
#$newData['qmailUID'] = (!empty($this->domainName)) ? $_username .'@'. $this->domainName : $_username;
|
||||
|
||||
ldap_modify($ds, $info[0]['dn'], $newData);
|
||||
|
||||
return true;
|
||||
} else {
|
||||
$newData = array();
|
||||
$newData['qmailGID'] = sprintf("%u", crc32($GLOBALS['egw_info']['server']['install_id']));
|
||||
#$newData['qmailUID'] = (!empty($this->domainName)) ? $_username .'@'. $this->domainName : $_username;
|
||||
|
||||
$filter = '(&(objectclass=posixaccount)(uidnumber='. $uidnumber .'))';
|
||||
$justthese = array('dn', 'objectclass', 'qmailUID', 'qmailGID', 'mail');
|
||||
$sri = ldap_search($ds, $GLOBALS['egw_info']['server']['ldap_context'], $filter, $justthese);
|
||||
|
||||
if($info = ldap_get_entries($ds, $sri)) {
|
||||
if(!in_array('qmailuser',$info[0]['objectclass']) && $info[0]['email']) {
|
||||
$newData['objectclass'] = $info[0]['objectclass'];
|
||||
unset($newData['objectclass']['count']);
|
||||
$newData['objectclass'][] = 'qmailuser';
|
||||
sort($newData['objectclass']);
|
||||
$newData['qmailGID'] = sprintf("%u", crc32($GLOBALS['egw_info']['server']['install_id']));
|
||||
#$newData['qmailUID'] = (!empty($this->domainName)) ? $_username .'@'. $this->domainName : $_username;
|
||||
|
||||
ldap_modify($ds, $info[0]['dn'], $newData);
|
||||
|
||||
return true;
|
||||
} else {
|
||||
if(!ldap_modify($ds, $info[0]['dn'], $newData)) {
|
||||
#print ldap_error($ds);
|
||||
#return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
function setUserData($_username, $_quota) {
|
||||
$ds = $GLOBALS['egw']->ldap->ldapConnect(
|
||||
$GLOBALS['egw_info']['server']['ldap_host'],
|
||||
$GLOBALS['egw_info']['server']['ldap_root_dn'],
|
||||
$GLOBALS['egw_info']['server']['ldap_root_pw']
|
||||
);
|
||||
|
||||
if(!is_resource($ds)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$filter = '(&(objectclass=posixaccount)(uid='. $_username .'))';
|
||||
$justthese = array('dn', 'objectclass', 'qmailGID', 'mail');
|
||||
$sri = ldap_search($ds, $GLOBALS['egw_info']['server']['ldap_context'], $filter, $justthese);
|
||||
|
||||
if($info = ldap_get_entries($ds, $sri)) {
|
||||
#_debug_array($info);
|
||||
if(!in_array('qmailuser',$info[0]['objectclass']) && $info[0]['email']) {
|
||||
$newData['objectclass'] = $info[0]['objectclass'];
|
||||
unset($newData['objectclass']['count']);
|
||||
$newData['objectclass'][] = 'qmailuser';
|
||||
sort($newData['objectclass']);
|
||||
$newData['qmailGID'] = sprintf("%u", crc32($GLOBALS['egw_info']['server']['install_id']));
|
||||
|
||||
ldap_modify($ds, $info[0]['dn'], $newData);
|
||||
} else {
|
||||
if (in_array('qmailuser',$info[0]['objectclass']) && !$info[0]['qmailgid']) {
|
||||
$newData = array();
|
||||
$newData['qmailGID'] = sprintf("%u", crc32($GLOBALS['egw_info']['server']['install_id']));
|
||||
#$newData['qmailUID'] = (!empty($this->domainName)) ? $_username .'@'. $this->domainName : $_username;
|
||||
|
||||
if(!ldap_modify($ds, $info[0]['dn'], $newData)) {
|
||||
#print ldap_error($ds);
|
||||
@ -94,65 +139,23 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
function setUserData($_username, $_quota) {
|
||||
$ds = $GLOBALS['egw']->ldap->ldapConnect(
|
||||
$GLOBALS['egw_info']['server']['ldap_host'],
|
||||
$GLOBALS['egw_info']['server']['ldap_root_dn'],
|
||||
$GLOBALS['egw_info']['server']['ldap_root_pw']
|
||||
);
|
||||
|
||||
$newData = array();
|
||||
|
||||
if(!is_resource($ds)) {
|
||||
if((int)$_quota >= 0) {
|
||||
$newData['mailQuota'] = (int)$_quota * 1048576;
|
||||
} else {
|
||||
$newData['mailQuota'] = array();
|
||||
}
|
||||
|
||||
if(!ldap_modify($ds, $info[0]['dn'], $newData)) {
|
||||
#print ldap_error($ds);
|
||||
return false;
|
||||
}
|
||||
|
||||
$filter = '(&(objectclass=posixaccount)(uid='. $_username .'))';
|
||||
$justthese = array('dn', 'objectclass', 'qmailGID', 'mail');
|
||||
$sri = ldap_search($ds, $GLOBALS['egw_info']['server']['ldap_context'], $filter, $justthese);
|
||||
|
||||
if($info = ldap_get_entries($ds, $sri)) {
|
||||
#_debug_array($info);
|
||||
if(!in_array('qmailuser',$info[0]['objectclass']) && $info[0]['email']) {
|
||||
$newData['objectclass'] = $info[0]['objectclass'];
|
||||
unset($newData['objectclass']['count']);
|
||||
$newData['objectclass'][] = 'qmailuser';
|
||||
sort($newData['objectclass']);
|
||||
$newData['qmailGID'] = sprintf("%u", crc32($GLOBALS['egw_info']['server']['install_id']));
|
||||
|
||||
ldap_modify($ds, $info[0]['dn'], $newData);
|
||||
} else {
|
||||
if (in_array('qmailuser',$info[0]['objectclass']) && !$info[0]['qmailgid']) {
|
||||
$newData = array();
|
||||
$newData['qmailGID'] = sprintf("%u", crc32($GLOBALS['egw_info']['server']['install_id']));
|
||||
|
||||
if(!ldap_modify($ds, $info[0]['dn'], $newData)) {
|
||||
#print ldap_error($ds);
|
||||
#return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$newData = array();
|
||||
|
||||
if((int)$_quota >= 0) {
|
||||
$newData['mailQuota'] = (int)$_quota * 1048576;
|
||||
} else {
|
||||
$newData['mailQuota'] = array();
|
||||
}
|
||||
|
||||
if(!ldap_modify($ds, $info[0]['dn'], $newData)) {
|
||||
#print ldap_error($ds);
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
?>
|
||||
}
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -13,6 +13,11 @@
|
||||
|
||||
class defaultsmtp
|
||||
{
|
||||
/**
|
||||
* Capabilities of this class (pipe-separated): default, forward
|
||||
*/
|
||||
const CAPABILITIES = 'default';
|
||||
|
||||
var $smtpAuth = false;
|
||||
|
||||
var $editForwardingAddress = false;
|
||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -16,6 +16,11 @@
|
||||
class postfixdbmailuser extends emailadmin_smtp_ldap
|
||||
//class emailadmin_smtp_dbmailuser extends emailadmin_smtp_ldap
|
||||
{
|
||||
/**
|
||||
* Capabilities of this class (pipe-separated): default, forward
|
||||
*/
|
||||
const CAPABILITIES = 'default|forward';
|
||||
|
||||
/**
|
||||
* Name of schema, has to be the correct case!
|
||||
*/
|
||||
|
@ -16,6 +16,11 @@
|
||||
class postfixldap extends emailadmin_smtp_ldap
|
||||
//class emailadmin_smtp_qmailuser extends emailadmin_smtp_ldap
|
||||
{
|
||||
/**
|
||||
* Capabilities of this class (pipe-separated): default, forward
|
||||
*/
|
||||
const CAPABILITIES = 'default|forward';
|
||||
|
||||
/**
|
||||
* Name of schema, has to be in the right case!
|
||||
*/
|
||||
|
@ -25,6 +25,11 @@ include_once(EGW_SERVER_ROOT."/emailadmin/inc/class.pleskimap.inc.php");
|
||||
|
||||
class smtpplesk extends defaultsmtp
|
||||
{
|
||||
/**
|
||||
* Capabilities of this class (pipe-separated): default, forward
|
||||
*/
|
||||
const CAPABILITIES = 'default|forward';
|
||||
|
||||
/**
|
||||
* @var string/boolean $error string with last error-message or false
|
||||
*/
|
||||
|
Loading…
Reference in New Issue
Block a user