[turba] LDAP Driver

Lee lee@disinfo.com
Wed, 12 Jun 2002 21:29:15 -0400


>> hordePrefs isn't an objectclass, AFAIK, hordePerson is
Chalk this one up to too much time in front of the monitor today, I
meant hordePerson not hordePrefs :()

>> How would your choice of objectclass directly effect IMP?
It shouldn't, I just want to make sure imp doesn't do any weird searches
by objectclass.

L

-----Original Message-----
From: Edwin Culp [mailto:eculp@encontacto.net] 
Sent: Wednesday, June 12, 2002 8:59 PM
To: Lee
Cc: turba@lists.horde.org
Subject: RE: [turba] LDAP Driver

Quoting Lee <lee@disinfo.com>:

| This is perfect, thanks a million, I'm going to give this a try. 
| 
| One more question though. Do you happen to know off the top of your
head
| what I would have to change in IMP if I decided to make an AUXILIARY
| class copy of the hordePrefs objectclass (all the same attributes,
just
| AUX instead of derived from person - I have oids, so this wont be a
| problem)? Doing this would allow me to add the neccesary attributes
| (impPrefs, turbaPrefs etc...) to our existing ldap user accounts,
| without having to make the hordePrefs objectclass a child of these
| account.

hordePrefs isn't an objectclass, AFAIK, hordePerson is but
I must really be slow today.  How would your choice of objectclass 
directly effect IMP?

ed

| 
| BTW, isnt it considered good ldap schema style to make application
| specific attributes part of AUX objectclasses anyway (hint hint imp
| developers :)
| 
| Thanks again,
| Lee   
| 
| 
| -----Original Message-----
| From: Edwin Culp [mailto:eculp@encontacto.net] 
| Sent: Wednesday, June 12, 2002 8:00 PM
| To: Lee
| Cc: turba@lists.horde.org
| Subject: RE: [turba] LDAP Driver
| 
| Quoting Lee <lee@disinfo.com>:
| 
| | Has anyone implemented a per user address book for turba using ldap?
I
| | see a default shared address book in sources.php, but nothing for
per
| | user (private) ldap.
| | 
| | Thanks,
| | Lee 
| Lee,
| 
| I do it with my ldap directory structure and
| horde/turba/config/sources.php
| configuration. 
| 
| My ldap tree for this is 
| o=my.org
|   ou=people,o=my.org
|     mail=name@my.org,ou=people,o=my.org  /* This builds my corp.
| addrBook.*/
|   ou=addressbook,o=my.org
|     mail=name@my.org,ou=addressbook,o=my.org
|       mail=aPersonInMyAddressBook@theirDomain.com,mail=name@my.org,\
|       ou=addressbook,o=my.org      /*This is the personal
addressbook.*/
| 
| I have two definitions in sources.php on for the corporate addressbook
| and the other for the personal addressbook.  This works for me for
| virtual users and domains. I've probably made it too complicated so
| feedback/suggestions for simplification, improvements, scalability, 
| etc. would be appreciated.
| 
| My sources.php should be self explanatory.  It basically configures
| itself
| based on the url.
| 
| I hope this helps,
| 
| ed
| 
| --------------------------sources.php Follows -----------------------
| <?php
| 
| /*     Sources.php      */
| 
| $vdomain = strtolower(preg_replace('|^mail\.|i', '',
| $_SERVER['HTTP_HOST']));
| $usermail=Auth::getAuth();
| $uid = preg_replace('|@.*|i', '', $usermail);
| $pass=Auth::getCredential('password');
| 
| /*         PRIVATE ADDRESS BOOK      */
| 
| $cfgSources['private'] = array(
|     'title' => 'Personal directory for ' . $uid,
|     'type' => 'ldap',
|     'params' => array(
|         'server' => 'localhost',
|         'port' => 389,
|         'root' => 'mail=' . $usermail . ',ou=addressbook,o=my.org',
| 
| /*        BIND AS USER NOT AS ROOT    */
| 
|         'bind_dn' => 'mail=' . $usermail . ',ou=people,o=my.org',
|         'bind_password' => $pass,
|         'dn' => array('mail'),
|         'objectclass' => array( 'hordePerson'),
|         'filter' =>  ''
|     ),
|     'map' => array(
|         '__key' => 'dn',
|         'name' => 'cn',
|         'email' => 'mail',
|         'alias' => 'givenname'
|     ),
|     'search' => array(
|         'name',
|         'email',
|         'alias'
|     ),
| 
|     'strict' => array(
|         'dn'
|     ),
| 
|     'public' => true,
|     'readonly' => false,
|     'admin' => array(),
|     'export' => true
| );
| 
| /*    Corporate/Domain Address Book      */
| 
| $cfgSources['corporate'] = array(
|     'title' => 'Our ' . $vdomain . ' Directory',
|     'type' => 'ldap',
|     'params' => array(
|         'server' => 'localhost',
|         'port' => 389,
|         'root' => 'ou=people,o=worldinternet.org',
| 
| /*        BIND AS USER NOT AS ROOT        */
| 
|         'bind_dn' => 'mail=' . $usermail . ',ou=people,o=my.org',
|         'bind_password' => $pass,
|         'dn' => array('cn'),
|         'objectclass' => array( 'hordePerson'),
|         'filter' => ''
|     ),
|     'map' => array(
|         '__key' => 'dn',
|         'name' => 'cn',
|         'email' => 'mail',
|         'sirname' => 'sn',
|         'title' => 'title',
|         'company' => 'o',
|         'businesscategory' => 'businesscategory',
|         'companyaddress' => 'postaladdress',
|         'zip' => 'postalcode',
|         'workphone' => 'telephonenumber',
|         'fax' => 'facsimiletelephonenumber',
|         'homeaddress' => 'homepostaladdress',
|         'city' => 'l',
|         'state' => 'st',
|         'homephone' => 'homephone',
|         'cellphone' => 'mobile',
|         'alias' => 'givenname',
|         'notes' => 'description',
|         'pgpPublicKey' => 'object_pgppublickey'
|     ),
|     'search' => array(
|         'name',
|         'email',
|         'company',
|         'alias',
|         'sirname',
|         'homephone',
|         'workphone',
|         'cellphone',
|         'homeaddress'
|     ),
|     'public' => true,
|     'readonly' => false,
|     'admin' => array('eculp@' .  $vdomain ),
|     'export' => true
| );
| 
| Hope this helps,
| 
| ed


--