[SOGo] WebDAV ACL Principals
Helge Hess
sogo@opengroupware.org
Fri, 4 Apr 2008 22:02:20 +0200
On 03.04.2008, at 14:31, Wolfgang Sourdeau wrote:
> Seriously, there are certain CalDAV requirements that SOGo still
> lacks.
BTW: I just had a look on how the Apple server implements REPORT
queries, eg prop-filter, text-match. Its exactly the way I would have
done it ;-)
The basic idea is to convert the CalDAV filter hierarchy (XML) into an
EOQualifier hierarchy / EOFetchSpecification.
Eg section 7.8.6 ;-):
---snip---
<?xml version="1.0" encoding="utf-8" ?>
<C:calendar-query xmlns:C="urn:ietf:params:xml:ns:caldav">
<D:prop xmlns:D="DAV:">
<D:getetag/>
<C:calendar-data/>
</D:prop>
<C:filter>
<C:comp-filter name="VCALENDAR">
<C:comp-filter name="VEVENT">
<C:prop-filter name="UID">
<C:text-match collation="i;octet"
>DC6C50A017428C5216A2F1CD@example.com</C:text-match>
</C:prop-filter>
</C:comp-filter>
</C:comp-filter>
</C:filter>
</C:calendar-query>
---snap---
would become an EOFetchSpecification:
- attributeNames:
- {DAV:}getetag,
- {urn:ietf:params:xml:ns:caldav}calendar-data
- qualifier:
component = 'VCALENDAR'
AND (
component = 'VEVENT'
AND (
UID LIKE '*DC6C50A017428C5216A2F1CD@example.com*'
);
);
To evaluate the EOQualifier, you would first check whether all
EOQualifier keys are in the content index table (methods to extract
the keys should already exist). If so, you can directly translate that
into GCS SQL. If not, you can do partial things in SQL or just grep
through the whole content (as a first shot).
Would be nice to have that in SOPE ;-)
Greets,
Helge
--
Helge Hess
http://www.helgehess.eu/