[horde] Some questions

Nicolas Fo nicolasfo at ymail.com
Tue Dec 18 13:19:40 UTC 2012


Le 14/12/2012 15:39, Nicolas Fo a écrit :
> Le 14/12/2012 15:00, Nicolas Fo a écrit :
>> Le 14/12/2012 14:47, Nicolas Fo a écrit :
>>> Le 28/11/2012 16:48, Oscar del Rio a écrit :
>>>> On 11/28/12 09:23 AM, Nicolas Fo wrote:
>>>>> - How to auto fill "Name" and "Surname" of a user ? Those 
>>>>> informations would be stored in my AD base.
>>>>
>>>> horde/config/hooks.php  (see hooks.php.dist)
>>>>
>>>>> - How to hard setup (server side, for every users) HTML composing 
>>>>> mails ?
>>>>> - How to setup IMAP folders in IMP ? What are default names for 
>>>>> folders ? (Junk, sent...)
>>>>> - How to setup deleted mails go directly in trash and don't be 
>>>>> crossed ?
>>>>
>>>> imp/config/prefs.local.php  (see prefs.php for all options)
>>>>
>>>>
>>> Hello,
>>>
>>> Sorry to be late, I don't have a lot of time those days..
>>>
>>> I've tried to set the FullName from my AD LDAP base in Horde 
>>> (fullname is mentionned in the "cn" field)
>>>
>>> Here's my hooks.php file :
>>>
>>> <?php
>>> class Horde_Hooks
>>> {
>>>     {
>>>         switch ($pref) {
>>>         case 'fullname':
>>>
>>> //            // Example #2: Set the fullname from LDAP information. 
>>> In this
>>> //            // example we look if a Spanish name exists and return 
>>> this or
>>> //            // the standard 'cn' entry if not.
>>>             if (is_null($username)) {
>>>                 return $value;
>>>             }
>>>
>>>             $ldapServer = 'MY.AD.SERVER';
>>>             $ldapPort = '389';
>>>             $searchBase = 'ou=OUNAME,dc=DOMAIN,DC=LOCAL';
>>>
>>>             $ds = @ldap_connect($ldapServer, $ldapPort);
>>>
>>>             $searchResult = @ldap_search($ds, $searchBase, 'uid=' . 
>>> $username);
>>>             $information = @ldap_get_entries($ds, $searchResult);
>>>             if (($information === false) || ($information['count'] 
>>> == 0)) {
>>>                 $name = '';
>>>             } else {
>>>                 $name = ($information[0]['cn;lang-es'][0] != '')
>>>                     ? $information[0]['cn;lang-es'][0]
>>>                     : $information[0]['cn'][0];
>>>             }
>>>
>>>             ldap_close($ds);
>>>
>>>             return empty($name)
>>>                 ? $username
>>>                 : $name;
>>>         }
>>>     }
>>> }
>>>
>>> I didn't understand the example with the Spanish name... So this 
>>> hooks file made something wrong...lol
>>>
>>> When I try to go to login to horde, I've an error "500 Internal 
>>> server error"
>>>
>>> I just want to have the user fullname set in Horde when user logs 
>>> in.. No filter to apply etc..
>>>
>>> Someone to help me ? in add, i'm not sure of the selected code...
>>>
>>> Thanks :)
>> So, I changed the code to delete the "Spanish restriction" and always 
>> the same problem :
>>
>> <?php
>> class Horde_Hooks
>> {
>>     {
>>         switch ($pref) {
>>         case 'fullname':
>>
>> //            // Example #2: Set the fullname from LDAP information. 
>> In this
>> //            // example we look if a Spanish name exists and return 
>> this or
>> //            // the standard 'cn' entry if not.
>>             if (is_null($username)) {
>>                 return $value;
>>             }
>>
>>             $ldapServer = 'MY.AD.SERVER';
>>             $ldapPort = '389';
>>             $searchBase = 'ou=OUNAME,dc=DOMAIN,DC=LOCAL';
>>
>>             $ds = @ldap_connect($ldapServer, $ldapPort);
>>
>>             $searchResult = @ldap_search($ds, $searchBase, 'cn=' . 
>> $username);
>>             $information = @ldap_get_entries($ds, $searchResult);
>>             if (($information === false) || ($information['count'] == 
>> 0)) {
>>                 $name = '';
>>             }
>>             ldap_close($ds);
>>
>>             return empty($name)
>>                 ? $username
>>                 : $name;
>>         }
>>     }
>> }
>>
>> Thanks in advance ;)
>>
>> Nicolas
>
> I forgot this line at the begining of the file :
>
>     public function prefs_init($pref, $value, $username, $scope_ob)
>
> Now, horde login page is OK, but the username is still missing...
>
> Thanks
Hello,

Here's my hooks.php :

<?php
class Horde_Hooks
{
     public function prefs_init($pref, $value, $username, $scope_ob)
     {
         switch ($pref) {
         case 'fullname':

             if (is_null($username)) {
                 return $value;
             }

             $ldapServer = 'MY.ADSERVER.LAN';
             $ldapPort = '389';
             $searchBase = 'ou=OUNAME,dc=DOMAIN,dc=lan';

             $ds = @ldap_connect($ldapServer, $ldapPort);

             $searchResult = @ldap_search($ds, $searchBase, 
'displayname=' . $username);
             $information = @ldap_get_entries($ds, $searchResult);
             if (($information === false) || ($information['count'] == 0)) {
                 $name = '';
             }
             ldap_close($ds);

             return empty($name)
                 ? $username
                 : $name;

}
}
}

and the prefs.local.php :

<?php
$_prefs['fullname'] = array(
     'value' => '',
     'locked' => true,
     'shared' => true,
     'type' => 'text',
     'hook' => true,
     'desc' => _("Your full name:")
);

It doesn't work, what am I missed ?

Thanks


More information about the horde mailing list