[imp] login modifications

Andrew Morgan morgan at orst.edu
Thu Jan 13 16:09:49 PST 2005



On Thu, 13 Jan 2005, Arshavir Grigorian wrote:

> Arshavir Grigorian wrote:
>
>> Hi,
>> 
>> I have to deal with an Exchange IMAP server that requires the users to type 
>> in the following logins:
>> 
>> domain/username/alias
>> 
>> I am wondering whether there is a way (short of hacking the code) to 
>> configure IMP/Horde to automagically add the domain and the alias parts, so 
>> that the user only has to type in the username.
>> 
>> Thanks for any pointers.
>> 
>> 
>> Arshavir
>
> Replying to my own email, I think I found a hook (_passwd_hook_username) that 
> will do what I want. I wrote a very simple hook and tried to enable it in 
> horde/config/conf.php
>
> as
>
> $conf['hooks']['username'] = true;
>
> but I don't think my hook get's called, otherwise it should have let me log 
> in, but it does not.
>
> if (!function_exists('_passwd_hook_username')) {
>   function _passwd_hook_username($userid)
>   {
>       return 'm-cam/'.$userid .'/ag';
>   }
> }
>
> Thanks in advance for any pointers.

You don't say which version of IMP you are using, but I use the following 
hook in IMP 3 to make sure all usernames are lowercase:

$conf['hooks']['vinfo'] = 'imp_get_vinfo';

if (!function_exists('imp_get_vinfo')) {
         function imp_get_vinfo ($type = 'username') {
                 if ($type == 'username') {
                         return strtolower($_SESSION['imp']['user']);
                 } else {
                         return new PEAR_Error('invalid type: ' . $type);
                 }
         }
}


You can easily use the vinfo hook to do what you want.  Just replace the 
line above:

         return strtolower($_SESSION['imp']['user']);

with:

         return 'm-cam/' . strtolower($_SESSION['imp']['user']) . '/ag';


(I included the strtolower so that users don't get different prefs when 
they vary the case of their login name)


 	Andy


More information about the imp mailing list