[imp] [horde] Login with mail or uid

Rodrigo Abrantes Antunes rodrigoantunes at pelotas.ifsul.edu.br
Wed Oct 31 14:46:42 UTC 2012


Citando Rodrigo Abrantes Antunes <rodrigoantunes at pelotas.ifsul.edu.br>:
> Citando Jan Schneider <jan at horde.org>:  > Zitat von Rodrigo Abrantes  
> Antunes <rodrigoantunes at pelotas.ifsul.edu.br>:   > Hi, I need my  
> users to login to horde and imp using their ldap 'uid' or
>>>       their ldap 'mail' but after login only uid is used as usual, in horde
>>>       configuration I can specify only one of them to search in  
>>> ldap. I looked
>>>       trought the hooks and found "authusername" but I think that it isn't
>>>       exactly what I need.
>>    It is.
>>    --
>>    Jan Schneider
>>    The Horde Project
>> http://www.horde.org/
>>
>>    --
>>    Horde mailing list
>>    Frequently Asked Questions: http://horde.org/faq/To unsubscribe,  
>> mail: horde-unsubscribe at lists.horde.org
>   I tried to use the mentioned hook. I put exactly this in hooks.local.php
>   (bind anonymously):
>
>   class Horde_Hooks
>   {
>       public function authusername($userId, $toHorde)
>       {
>              $ldapServer = 'ldaps://myldapserver';
>              $ldapPort = '389';
>              $searchBase = 'ou=people,dc=mydc';
>              $ds = @ldap_connect($ldapServer, $ldapPort);
>              $searchResult = @ldap_search($ds, $searchBase, 'uid=' .  
> $userId);
>              $information = @ldap_get_entries($ds, $searchResult);
>              if (($information !== false) && ($information['count'] > 0)) {
>                 $userId = $information[0]['mail'][0];
>              }
>              return array(
>                'userId' => $userId,
>                'credentials' => $credentials
>             );
>      }
>   }
>
>   But when I log with uid it says "User is not authorized for imp" and "/the
>   preference system is down, so until this//message goes away you're working
>   with the default preferences instead of the//ones you chose/" and in logs
>   I see a lot of these:
>
>   SQL QUERY FAILED: SQLSTATE[42000]: Syntax error or access violation: 1064
>   You have an error in your SQL syntax; check the manual that corresponds to
>   your MySQL server version for the right syntax to use near 'AND (perm_2 =
>   1)' at line 1
>           SELECT * FROM mnemo_sharesng_users WHERE user_uid = AND (perm_2 =
>   1) [pid 1568 on line 812 of "/usr/share/php/Horde/Db/Adapter/Base.php"]
>
>   It seems it contact ldap for the credentials and sucessfully login but
>   after this it looses the userid and can't load any preferences. And I
>   still can't login with e-mail.
>
>   I modified the hook to test it standalone and it worked well (returned the
>   email),  here is how I modified it:
>
>   <?php
>   $userId='xxxxxxxx';
>   $ldapServer = 'ldaps://myldapserver';
>   $ldapPort = '389';
>   $searchBase = 'ou=people,dc=mydc';
>   $ds = @ldap_connect($ldapServer, $ldapPort);
>   $searchResult = @ldap_search($ds, $searchBase, 'uid=' . $userId);
>   $information = @ldap_get_entries($ds, $searchResult);
>   if (($information !== false) && ($information['count'] > 0)) {
>        $userId = $information[0]['mail'][0];
>   }
>   echo $userId;
>   ?>
>
>   Anything I may be missing?
>   --
>   Horde mailing list
>   Frequently Asked Questions: http://horde.org/faq/To unsubscribe,  
> mail: horde-unsubscribe at lists.horde.org
No ideas?


More information about the imp mailing list