[commits] [Wiki] created: ImpH4Realm
Wiki Guest
wikiguest at horde.org
Sat Aug 18 14:48:59 UTC 2012
guest [76.115.122.115] Sat, 18 Aug 2012 14:48:59 +0000
Created page: http://wiki.horde.org/ImpH4Realm
In Horde3 with IMP4, the IMAP server configuration in
imp/config/servers.php had a 'realm' parameter:
<code>
$servers['imap'] = array(
'name' => 'IMAP Server',
'server' => 'imap.example.com',
'hordeauth' => false,
'protocol' => 'imap/notls',
'port' => 143,
'maildomain' => 'example.com',
'smtphost' => 'smtp.example.com',
'smtpport' => 25,
'realm' => 'example.com',
'preferred' => '',
);
</code>
The purpose of the realm parameter is to append a realm/domain to the
Horde username after login. For example, a user that logged into the
server 'imap' from above with a username 'john' would have their Horde
username set to 'john at example.com'. This is useful if you are
supporting multiple IMAP servers with a single Horde installation and
the usernames in each IMAP server may overlap ('john' at server1 and
'john' at server2 are not the same person).
Horde4 with IMP5 does not have a native 'realm' parameter in
imp/config/backends.local.php, but you can replicate the same
functionality by modifying the horde 'authusername' hook. In
horde/config/hooks.php:
<code>
public function authusername($userId, $toHorde)
{
if ($toHorde) {
// Get the IMAP connection object
$imap =
$GLOBALS['injector']->getInstance('IMP_Factory_Imap')->create();
// Get the IMAP hostname
$hostspec = $imap->ob->getParam('hostspec');
// Load the backends.local.php server configs
$servers = IMP_Imap::loadServerConfig();
// Look through each server for a hostname match
foreach ($servers as $server) {
if ($server['hostspec'] == $hostspec) {
// Append the 'realm' parameter
$userId = $userId . '@' . $server['realm'];
break;
}
}
return $userId;
} else {
// strip the domain off
$userId = substr($userId, 0, strpos($userId, '@'));
return $userId;
}
}
</code>
Here is an example IMAP server config from imp/config/backends.local.php:
<code>
$servers['imap'] = array(
// ENABLED by default
'disabled' => false,
'name' => 'IMAP Server',
'hostspec' => 'localhost',
'hordeauth' => false,
'protocol' => 'imap',
'port' => 143,
'secure' => 'tls',
'maildomain' => 'example.com',
'cache' => false,
'realm' => 'example.com',
);
</code>
Note the non-standard 'realm' parameter which is used by the
authusername hook later.
More information about the commits
mailing list