[turba] Shared address books

Craig White craigwhite at azapple.com
Sun Dec 18 19:51:05 PST 2005


On Sun, 2005-12-18 at 13:37 -0900, mbox mbarsalou wrote: 
> Is it possible to use LDAP to have shared/restricted address books?
> 
> If so, has any written anything on setting something up like this?
> 
> My particular goal is to have one list of contacts (whether via ldap or
> whatever source would make it possible) that I could then have
> particular users/groups only see certain contacts.
> 
> I'm not quite certain how I might accomplish this, but would willingly
> work at accomplishing this task with a kick in the right direction. :)
> 
> What are my best choices to make something like this work?
> 
----
don't know what your best choices are but I don't know of any way to
restrict individual entries from 1 list.

What I normally do is publish a read only directory of the users
themselves, a shared directory which all users can read and some can
write (enforced by LDAP ACL/ACI) and have personal addressbooks which
are also enforced by LDAP ACL/ACI.

I have clipped the top of each section so you can see how I set it up in
turba/config/sources.php and the 'restrictions' are in the LDAP ACL's
(or in the case of Fedora Directory Server, ACI's)

### Shared Directory
$uid = Auth::getBareAuth();
$basedn = 'dc=azapple,dc=com';
$cfgSources['localldap'] = array(
    'title' => _("Shared Directory"),
    'type' => 'ldap',
    'params' => array(
        'server' => 'localhost',
        'port' => 389,
        'tls' => false,
        'root' => 'ou=AddressBook,dc=azapple,dc=com',
        'bind_dn' => 'uid=' . $uid . ',ou=People,' . $basedn,
        'bind_password' => Auth::getCredential('password'),

### Employee Directory
$uid = Auth::getBareAuth();
$basedn = 'dc=azapple,dc=com';
$cfgSources['base_ldap'] = array(
    'title' => _("Employee Directory"),
    'type' => 'ldap',
    'params' => array(
        'server' => 'localhost',
        'port' => 389,
        'tls' => false,
        'root' => 'ou=People,dc=azapple,dc=com',
        'bind_dn' => 'uid=' . $uid . ',ou=People,' . $basedn,
        'bind_password' => Auth::getCredential('password'),

### Personal LDAP
$uid = Auth::getBareAuth();
$basedn = 'dc=azapple,dc=com';
$cfgSources['personal_ldap'] = array(
    'title' => _("My LDAP Addressbook"),
    'type' => 'ldap',
    'params' => array(
        'server' => 'localhost',
        'tls' => false,
        'root' => 'ou=AddressBook,uid=' . $uid . ',ou=People,' .
$basedn,
        'bind_dn' => 'uid=' . $uid . ',ou=People,' . $basedn,
        'bind_password' => Auth::getCredential('password'),

HTH

Craig



More information about the turba mailing list