mirror of
https://github.com/EGroupware/egroupware.git
synced 2025-01-12 17:08:16 +01:00
an other imap login type: uidNumber using eg. u123@domain AND setting it, if ldap schema supports mailbox-attribute
This commit is contained in:
parent
6b474b08e2
commit
be5bffcc01
@ -337,20 +337,26 @@ class defaultimap extends Net_IMAP
|
|||||||
*/
|
*/
|
||||||
function getMailBoxUserName($_username)
|
function getMailBoxUserName($_username)
|
||||||
{
|
{
|
||||||
if ($this->loginType == 'email')
|
switch ($this->loginType)
|
||||||
{
|
{
|
||||||
$_username = $_username;
|
case 'email':
|
||||||
$accountID = $GLOBALS['egw']->accounts->name2id($_username);
|
$_username = $_username;
|
||||||
$accountemail = $GLOBALS['egw']->accounts->id2name($accountID,'account_email');
|
$accountID = $GLOBALS['egw']->accounts->name2id($_username);
|
||||||
//$accountemail = $GLOBALS['egw']->accounts->read($GLOBALS['egw']->accounts->name2id($_username,'account_email'));
|
$accountemail = $GLOBALS['egw']->accounts->id2name($accountID,'account_email');
|
||||||
if (!empty($accountemail))
|
//$accountemail = $GLOBALS['egw']->accounts->read($GLOBALS['egw']->accounts->name2id($_username,'account_email'));
|
||||||
{
|
if (!empty($accountemail))
|
||||||
list($lusername,$domain) = explode('@',$accountemail,2);
|
|
||||||
if (strtolower($domain) == strtolower($this->domainName) && !empty($lusername))
|
|
||||||
{
|
{
|
||||||
$_username = $lusername;
|
list($lusername,$domain) = explode('@',$accountemail,2);
|
||||||
|
if (strtolower($domain) == strtolower($this->domainName) && !empty($lusername))
|
||||||
|
{
|
||||||
|
$_username = $lusername;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
break;
|
||||||
|
|
||||||
|
case 'uidNumber':
|
||||||
|
$_username = 'u'.$GLOBALS['egw']->accounts->name2id($_username);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
return $_username;
|
return $_username;
|
||||||
}
|
}
|
||||||
@ -370,7 +376,7 @@ class defaultimap extends Net_IMAP
|
|||||||
}
|
}
|
||||||
|
|
||||||
$_username = $this->getMailBoxUserName($_username);
|
$_username = $this->getMailBoxUserName($_username);
|
||||||
if($this->loginType == 'vmailmgr' || $this->loginType == 'email') {
|
if($this->loginType == 'vmailmgr' || $this->loginType == 'email' || $this->loginType == 'uidNumber') {
|
||||||
$_username .= '@'. $this->domainName;
|
$_username .= '@'. $this->domainName;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -141,10 +141,10 @@ class emailadmin_smtp_ldap extends defaultsmtp
|
|||||||
{
|
{
|
||||||
$newData[$this->config['mail_enable_attr']] = $this->config['mail_enabled'];
|
$newData[$this->config['mail_enable_attr']] = $this->config['mail_enabled'];
|
||||||
}
|
}
|
||||||
// does schema support an explicit mailbox name --> set it with $uid@$domain
|
// does schema support an explicit mailbox name --> set it
|
||||||
if ($this->config['mailbox_attr'])
|
if ($this->config['mailbox_attr'])
|
||||||
{
|
{
|
||||||
$newData[$this->config['mailbox_attr']] = $_hookValues['account_lid'].'@'.$this->defaultDomain;
|
$newData[$this->config['mailbox_attr']] = self::mailbox_addr($_hookValues);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!($ret = ldap_mod_replace($ds, $accountDN, $newData)) || $this->debug)
|
if (!($ret = ldap_mod_replace($ds, $accountDN, $newData)) || $this->debug)
|
||||||
@ -419,4 +419,38 @@ class emailadmin_smtp_ldap extends defaultsmtp
|
|||||||
return ldap_modify ($ds, $allValues[0]['dn'], $newData);
|
return ldap_modify ($ds, $allValues[0]['dn'], $newData);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Build mailbox address for given account and mail_addr_type
|
||||||
|
*
|
||||||
|
* @param int|array $account account_id or whole account array with values for keys
|
||||||
|
* @param string $domain=null domain, default use $this->defaultDomain
|
||||||
|
* @param string $mail_login_type=null standard(uid), vmailmgr(uid@domain), email or uidNumber,
|
||||||
|
* default use $GLOBALS['egw_info']['server']['mail_login_type']
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
static public function mailbox_addr($account,$domain=null,$mail_login_type=null)
|
||||||
|
{
|
||||||
|
if (is_null($domain)) $domain = $this->domain;
|
||||||
|
if (is_null($mail_login_type)) $mail_login_type = $GLOBALS['egw_info']['server']['mail_login_type'];
|
||||||
|
|
||||||
|
switch($mail_login_type)
|
||||||
|
{
|
||||||
|
case 'email':
|
||||||
|
return is_array($account) ? $account['account_email'] : $GLOBALS['egw']->accounts->id2name($account,'account_email');
|
||||||
|
|
||||||
|
case 'uidNumber':
|
||||||
|
if (is_array($account)) $account = $account['account_id'];
|
||||||
|
return 'u'.$account.'@'.$domain;
|
||||||
|
|
||||||
|
case 'standard':
|
||||||
|
if (is_array($account)) $account = $account['account_id'];
|
||||||
|
return $GLOBALS['egw']->accounts->id2name($account);
|
||||||
|
|
||||||
|
case 'vmailmgr':
|
||||||
|
default:
|
||||||
|
if (is_array($account)) $account = $account['account_id'];
|
||||||
|
return $GLOBALS['egw']->accounts->id2name($account).'@'.$domain;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -233,9 +233,10 @@ class emailadmin_ui extends emailadmin_bo
|
|||||||
{
|
{
|
||||||
//error_log(__METHOD__.' called with:'.$serverclass." with capabilities:".parent::$IMAPServerType[$serverclass]['imapcapabilities']);
|
//error_log(__METHOD__.' called with:'.$serverclass." with capabilities:".parent::$IMAPServerType[$serverclass]['imapcapabilities']);
|
||||||
$returnval = array(
|
$returnval = array(
|
||||||
'standard' =>lang('username (standard)'),
|
'standard' => lang('username (standard)'),
|
||||||
'vmailmgr' =>lang('username@domainname (Virtual MAIL ManaGeR)'),
|
'vmailmgr' => lang('username@domainname (Virtual MAIL ManaGeR)'),
|
||||||
'admin' =>lang('Username/Password defined by admin'),
|
'admin' => lang('Username/Password defined by admin'),
|
||||||
|
'uidNumber' => lang('UserId@domain eg. u1234@domain'),
|
||||||
);
|
);
|
||||||
if (!empty($serverclass) && stripos(constant($serverclass.'::CAPABILITIES'),'logintypeemail') !== false)
|
if (!empty($serverclass) && stripos(constant($serverclass.'::CAPABILITIES'),'logintypeemail') !== false)
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user