NAME
AddressBook::DB::LDAP - Backend for AddressBook to use LDAP.
SYNOPSIS
use AddressBook;
$a = AddressBook->new(source => "LDAP:hostname/ou=People,dc=example,dc=com",
username => "user", password => "pass");
DESCRIPTION
AddressBook::DB::LDAP supports random access backend database methods.
AddressBook::DB::LDAP behavior can be modified using the following options:
- key_fields
-
A list of LDAP attribute names (not cannonical names) which can be used to uniquely identify an entry.
- hostname
-
The LDAP host to which to connect.
- base
-
The base for LDAP queries.
- objectclass
-
The objectclass for AddressBook entries.
- username
-
An LDAP dn to use for accessing the server.
- password
- dn_calculate
-
A perl expression which, when eval'd returns a valid LDAP "dn" (omitting the "base" part of the dn). Other attributes may be referenced as "$<attr>".
For example, if LDAP entries have a dn like: "cn=John Doe,mail=jdoe@mail.com", then use the following:
dn_calculate="'cn=' . $cn . ',mail=' . $mail"
Any of these options can be specified in the constructor, or in the configuration file.
new
The ldap server and hostname may be specified in the constructor in in one of two ways:
As part of the "source" parameter, for example:
$a = AddressBook->new(source => "LDAP:localhost/ou=People,dc=example,dc=com");
Using the "hostname" and "base" named parameters:
$a = AddressBook->new(source => "LDAP", hostname=>"localhost", base=>"o=test" );
Like all AddressBook database constructor parameters, the "dsn" and "table" may also be specified in the configuration file.
Any of these options can be specified in the constructor, or in the configuration file.
Timestamps
For syncronization purposes, all records are timestamped using the "modifytimestamp" LDAP attribute. If the record has no "modifytimestamp", "createtimestamp" is used. If there is no "createtimestamp", the current time is used.
AUTHOR
Mark A. Hershberger, <mah@everybody.org> David L. Leigh, <dleigh@sameasiteverwas.net>
SEE ALSO
AddressBook, AddressBook::Config, AddressBook::Entry.
Net::LDAP