[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