I would like to get some form of mod_dav_acl[1] added to httpd. My end goal with all of this is to get a mod_caldav and mod_cardav accepted down the line or at least be able to build the module with out hacking the core httpd source.

I am going to start by splitting up the Jari's mod_dav_acl patches to httpd into small patches with detailed explanation on why they are needed and first up is the DAV options patch.

Currently there is no way for other dav modules to add things do the DAV or Allow headers of a OPTIONS request, only the mod_dav module can output those items. This patch:

  http://www.brianfrance.com/software/apache/dav/dav-options.diff

allows other mod_dav modules to add options to those headers. The next patch is only an example usage of the above patch and should not be added to the svn tree. This patch will add a mod_dav_acl module to the build:

  http://www.brianfrance.com/software/apache/dav/dav-options-acl.diff

The patch will require you to run ./buildconf to regenerate configure and:

    --enable-dav --enable-dav-acl

to enable it. This example skeleton acl module using the options patch will add access-control to the DAV header and REPORT and ACL to the Allow header:

  DAV: 1,2,access-control
Allow: OPTIONS ,GET ,HEAD ,POST,DELETE,TRACE,PROPFIND,PROPPATCH,COPY,MOVE,LOCK,UNLOCK,REPORT,ACL

This is the first step in getting a working mod_dav_acl module and with that allow a mod_caldav module to do something like this:

  DAV: 1,2,access-control,calendar-access
Allow: OPTIONS ,GET ,HEAD ,POST ,DELETE ,TRACE,PROPFIND,PROPPATCH,COPY,MOVE,LOCK,UNLOCK,REPORT,ACL,MKCALENDAR

and a mod_carddav module to do something like:

  DAV: 1,2,access-control,addressbook,extended-mkcol
Allow: OPTIONS ,GET ,HEAD ,POST,DELETE,TRACE,PROPFIND,PROPPATCH,COPY,MOVE,LOCK,UNLOCK,REPORT,ACL

There is one draw back to this patch in that there could be duplicated values in the headers. Both mod_dav_acl and mod_caldav want to add the REPORT in the Allow header, so it would show up twice in the list. I am not sure if this is a major problem, but wanted to make a note of it.

Thoughts, comments, questions?

These patches are based off of 2.2.13, but if you would rather have patch against a branch or head, please let me know.

Brian

[1] http://sourceforge.net/projects/moddavacl/

Reply via email to