-
Notifications
You must be signed in to change notification settings - Fork 10
Carddav
Bedework CardDAV is intended to act as a carddav gateway to various directory systems. Currently implemented is support for LDAP directories and database address books.
The server implements a principal hierarchy, the exact form of which is configurable but should match that used by the accompanying services, e.g. bedework CalDAV.
A principal hierarchy will look something like:
/principals /principals/users /principals/users/douglm ... /principals/groups /principals/groups/admingroup1 ... /principals/locations ...
In addition to the principal hierarchy a set of resources are maintained in their own hierarchy. This will typically look something like:
/public /public/people /public/people/douglm.vcs ... /public/locations ... /user
The CardDAV service uses directory handlers (Dirhandlers) to support branches of the hierarchies.
In a typical configuration each branch of the principal hierarchy will be mapped on to a principal directory handler. For example - LdapPrincipalDirHandler. usually each branch will represent an ou in an LDAP directory, for example we might have
/principals/users -> ou=accounts,dc=bedework,dc=org /principals/locations -> ou=locations,dc=bedework,dc=org
The resource hierarchy acts like a DAV hierarchy of resources with collections, sub-collections and address-book collections. In the above "/public" is a collection (folder) and "/public/people" is an address-book collection containing vcards.
Usually, in the public hierarchy, there are no real vcards. They are created on demand from ldap directory information. Hence the resource at path "/public/people/douglm.vcs" may be created from the ldap information found at the dn "uid=douglm,ou=people,dc=bedework,dc=org".
The public hierarchy is usually a view of the enterprise directories and is usually read-only.
The branch "/user" is usually handled by a database directory handler and this is where personal address books are stored. Each user has an address-book home, e.g. "/user/douglm" which is a regular DAV collection.
Inside that may be one or more address-books or collections.