- removed getUserMailboxString from cyrusimap, as it is identical to defaultimap, beside lowercasing usernames, which is not generic

- fixed typo in emailadmin_smtp_ldap::addAccount ($this->domain instead of $this->defaultDomain) creating new accounts with missing domain in mailbox attribute
- fixed emailadmin_smtp_ldap::setUserData to use new mailbox_addr method
This commit is contained in:
Ralf Becker 2010-09-01 11:28:16 +00:00
parent 26cea9e1bd
commit 50f6d8dcff
2 changed files with 8 additions and 29 deletions

View File

@ -104,30 +104,6 @@ class cyrusimap extends defaultimap
return count($mboxes);
}
/**
* Create mailbox string from given mailbox-name and user-name
*
* @param string $_username
* @param string $_folderName=''
* @return string utf-7 encoded (done in getMailboxName)
*/
function getUserMailboxString($_username, $_folderName='')
{
$nameSpaces = $this->getNameSpaces();
if(!isset($nameSpaces['others'])) {
return false;
}
$_username = $this->getMailBoxUserName($_username);
$mailboxString = $nameSpaces['others'][0]['name'] . strtolower($_username) . (!empty($_folderName) ? $nameSpaces['others'][0]['delimiter'] . $_folderName : '');
if($this->loginType == 'vmailmgr' || $this->loginType == 'email') {
$mailboxString .= '@'.$this->domainName;
}
return $mailboxString;
}
/**
* returns information about a user
* currently only supported information is the current quota

View File

@ -351,7 +351,11 @@ class emailadmin_smtp_ldap extends defaultsmtp
// does schema support an explicit mailbox name --> set it with $uid@$domain
if ($this->config['mailbox_attr'])
{
$newData[$this->config['mailbox_attr']] = $uid.'@'.$this->defaultDomain;
$newData[$this->config['mailbox_attr']] = self::mailbox_addr(array(
'account_id' => $_uidnumber,
'account_lid' => $uid,
'account_email' => $_mailLocalAddress,
));
}
if ($this->debug) error_log(__METHOD__.'('.array2string(func_get_args()).") --> ldap_mod_replace(,'$accountDN',".array2string($newData).')');
@ -433,7 +437,7 @@ class emailadmin_smtp_ldap extends defaultsmtp
*/
/*static*/ public function mailbox_addr($account,$domain=null,$mail_login_type=null)
{
if (is_null($domain)) $domain = $this->domain;
if (is_null($domain)) $domain = $this->defaultDomain;
if (is_null($mail_login_type)) $mail_login_type = $GLOBALS['egw_info']['server']['mail_login_type'];
switch($mail_login_type)
@ -457,8 +461,7 @@ class emailadmin_smtp_ldap extends defaultsmtp
$mbox .= '@'.$domain;
break;
}
//strtolower breaks CaseSensitive Authentication
//$mbox = strtolower($mbox);
if ($this->debug) error_log(__METHOD__."(".array2string($account).",'$domain','$mail_login_type') = '$mbox'");
return $mbox;
}