[horde] Virtual domain support in H4/IMP5
Patrick Domack
patrickdk at patrickdk.com
Fri Apr 15 20:57:18 UTC 2011
Quoting Antoine Heskia <horde at heskia.net>:
> Le 15 avr. 2011 à 15:22, Patrick Domack <patrickdk at patrickdk.com> a écrit :
>
>>
>> Quoting Antoine Heskia <horde at heskia.net>:
>>
>>> Hi,
>>>
>>> In my Horde3/IMP4, I used to have a custom hook function in the
>>> horde/imp/config/hooks.php to support multidomains that I am hosting.
>>> The user points its browser to mail.domain.com, the the login window
>>> displays "@domain.com" at the end of the username field and horde/imp
>>> provides username at domain.com to the IMAP server
>>> (qmail/vpopmail/courier-imap).
>>>
>>> This function looks like this:
>>> if (!function_exists('_imp_hook_vinfo')) {
>>> function _imp_hook_vinfo($type = 'username')
>>> {
>>> $vdomain = getenv('HTTP_HOST');
>>> $vdomain = preg_replace('|^(web)?mail\.|i', '', $vdomain);
>>> $vdomain = preg_replace('|^imp\.|i', '', $vdomain);
>>> $vdomain = String::lower($vdomain);
>>>
>>> if ($type == 'username') {
>>> if ($vdomain == '') {
>>> return $_SESSION['imp']['user'];
>>> } else {
>>> return (preg_replace('|@.*$|', '',
>>> $_SESSION['imp']['user']) . '@' . $vdomain);
>>> }
>>> } elseif ($type == 'vdomain') {
>>> return $vdomain;
>>> } else {
>>> return PEAR::raiseError('invalid type: ' . $type);
>>> }
>>> }
>>> }
>>>
>>> I did not find such a feature in Horde4/IMP5.
>>>
>>> I can not find a proper information in the documentation.
>>> for "The 'vinfo' hook has been removed. Use Horde's 'authusername'
>>> and/or IMP's
>>> 'preauthenticate' hooks instead."
>>>
>>> I have tried to play a bit with the hook public function
>>> authusername($userId, $toHorde) in horde/config/hooks.php
>>> but users still need to provide user at domain.com to logon (and they are
>>> recognized as user at domain.com@domain.com by horde) and the logon
>>> window does not displays "@domain.com" after the username field.
>>>
>>> Regarding
>>> "All hooks that are specific to IMP have been moved from the
>>> ``horde/config/hooks.php`` file. Move your existing IMP Hooks from there to
>>> ``imp/config/hooks.php``."
>>> this was already in imp/config/hooks.php in Horde3/IMP4. Should I
>>> copy/paste the code to Horde5/IMP4 ?
>>>
>>
>>
>> It seemed pretty easy to me:
>>
>> public function preauthenticate($userId, $credentials)
>> {
>> if (strpos($userId,'@')===false) {
>> $vdomain = preg_replace('/^((web)?mail|imp)\./i', '',
>> $_SERVER['HTTP_HOST']);
>> $userId=Horde_String::lower($userId . '@' . $vdomain);
>> } else {
>> $userId=Horde_String::lower($userId);
>> }
>>
>> return array(
>> 'userId' => $userId
>> );
>> }
>
> Manu thanks for your suggestion i'll try it. In which hooks.php i
> shhould put it ? horde/config/hooks.php or
> horde/imp/config/hooks.php ?
>
I'm not sure, I have mine in horde's cause I use horde's auth, but
maybe it should go in imp if you configure horde to use imp auth?
More information about the horde
mailing list