[horde] Virtual domain support in H4/IMP5
Antoine Heskia
horde at heskia.net
Mon Apr 18 09:23:13 UTC 2011
Le 15 avr. 2011 à 22:57, Patrick Domack a écrit :
>
> 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?
Hello,
I have added your piece of code in horde/config/hook.php (not in IMP) and it works like a charm thanks a lot !
The only thing I am missing here is to display the domain name in the login window at the end of the username field like it was in H4/IMP3. As I have multiple domains it's more convenient to have this...
Any idea on how to have this back ?
Thanks,
Antoine.
More information about the horde
mailing list