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/