[turba] Extend LDAP-example (was: turba, ldap and activesync)
Hanns Mattes
hanns at hannsmattes.de
Tue Feb 7 11:57:56 UTC 2012
Hi,
I'm extending the provided example for a personal ldap-addressbook (and
try to keep it "activesyncable"). I've added some attributes and
changed some mappings:
,----[ from backends.local.php ]
| $_ldap_uid = $GLOBALS['registry']->getAuth();
| $_ldap_basedn = 'dc=example,dc=com';
| // get the domain-part
| $trenner = explode("@", $_ldap_uid);
| $_ldap_domain = $trenner[1];
| $cfgSources['personal_ldap'] = array(
| // Disabled by default
| 'disabled' => false,
| 'title' => _("Adressenverzeichnis"),
| 'type' => 'ldap',
| 'params' => array(
| 'server' => 'ldap://ldap.example.com',
| 'tls' => false,
| 'root' => 'ou=' . $_ldap_uid . ',ou=horde_adressen,' . $_ldap_basedn,
| 'bind_dn' => 'uid=' . $_ldap_uid . ',ou=' . $_ldap_domain . ',ou=virtualmail,' . $_ldap_basedn,
| 'bind_password' => $GLOBALS['registry']->getAuthCredential('password'),
|
| 'dn' => array('uid'),
|
| // Added evolutionPerson to get attributes birthDate and spouseName
| 'objectclass' => array('top',
| 'person',
| 'turbaContact',
| 'inetOrgPerson',
| 'calEntry',
| 'organizationalPerson',
| 'evolutionPerson'),
| 'scope' => 'sub',
| 'charset' => 'utf-8',
| 'version' => 3
| ),
| 'map' => array(
| '__key' => 'dn',
| '__uid' => 'uid',
|
| // From horde.schema:
| '__type' => 'turbaType',
| '__members' => 'turbaMembers',
|
| 'name' => 'cn',
| // 'name' => array('fields' => array('firstname', 'lastname'),
| // 'format' => '%s %s'),
| 'firstname' => 'givenName',
| 'lastname' => 'sn',
| 'nickname' => 'displayName',
| 'email' => 'mail',
| 'title' => 'title',
| 'company' => 'o',
| 'office' => 'roomNumber',
| 'department' => 'ou',
| 'businessCategory' => 'businesscategory',
| // 'workAddress' => 'postaladdress',
| 'workPostalCode' => 'postalcode',
| 'workStreet' => 'street',
| 'workCity' => 'l',
| 'workPhone' => 'telephonenumber',
| 'fax' => 'facsimiletelephonenumber',
| 'homeAddress' => 'homepostaladdress',
| 'homePhone' => 'homephone',
| 'cellPhone' => 'mobile',
| // Abuse seeAlso to populate imaddress
| 'imaddress' => 'seeAlso',
| 'notes' => 'description',
| 'category' => 'category',
| // From evolutionPerson
| 'spouse' => 'spouseName',
| 'birthday' => 'birthDate',
| 'photo' => 'photo',
| // Evolution interopt attributes: (those that do not require the
| // evolution.schema)
| 'website' => 'labeledURI',
|
| // These are not stored on the LDAP server.
| 'pgpPublicKey' => 'object_pgppublickey',
| 'smimePublicKey' => 'object_smimepublickey',
|
| // From rfc2739.schema:
| 'freebusyUrl' => 'calFBURL',
| ),
|
| 'tabs' => array(
| _("Personal") => array('firstname', 'lastname',
| 'name', 'alias',
| 'birthday', 'spouse'),
| _("Location") => array('homeAddress', 'workStreet', 'workPOBox',
| 'workCity', 'workProvince', 'workPostalCode',
| 'workCountry', 'workAddress', 'timezone'),
| _("Communications") => array('email', 'homePhone', 'workPhone',
| 'cellPhone', 'fax', 'imaddress'),
| _("Organization") => array('title', 'role', 'company', 'department'),
| _("Other") => array('category', 'photo', 'notes', 'website', 'freebusyUrl',
| 'pgpPublicKey', 'smimePublicKey'),
| ),
|
|
| 'search' => array(
| 'name',
| 'email',
| 'businessCategory',
| 'title',
| 'homePhone',
| 'workPhone',
| 'cellPhone',
| 'homeAddress'
| ),
| 'strict' => array(
| 'dn',
| ),
| 'approximate' => array(
| 'cn',
| ),
| 'export' => true,
| 'browse' => true,
| );
`----
So far - without extensive testing - it's working for me. But I do have
to enter name Information twice:
'name' => 'cn',
'lastname' => 'sn',
'cn' is necessary, though identical to 'sn' in my configuration. If I do
something like
'name' => array('fields' => array('firstname', 'lastname'),
'format' => '%s %s'),
'name' is constructed in the desired way, but I don't know, how to pass it
to the 'cn'-attribute.
Any advice?
Regards Hanns
More information about the turba
mailing list