If the DAV client requests properties for a relative URI (without the
protocol:ip:port part), it means it can also understand responses with
relative notation, so don't bother calculating the prefix (non-trivial).
This fixes the REPORT responses to Mozilla Sunbird.
bzr revid: p_christ@hol.gr-20101014125118-3x5ivmrbaqwb1nsx
If user rights are not setup for the user that connects to WebDAV, this
exception will occur and the typo would not help debug the problem.
(still, the user won't see the items at either case)
bzr revid: p_christ@hol.gr-20101014110323-zxj5oha0u96e2l1t
This report is a request to fetch multiple calendar entries. The
request contains a range of URIs to fetch, which must be processed
at the dav_fs.Report level.
The report is being called with Depth: 0 , for which the library could
not perform an iterator. Hack over it and explictly set Depth:1 in our
case.
bzr revid: p_christ@hol.gr-20101012104103-eu156146jy4a75af
It is unavoidable. Some user agents (i-#$^%) have serious trouble with
protocol extensions they don't support. So, we have to hide a few of
our capabilities with quirk code.
bzr revid: p_christ@hol.gr-20101012104102-xakiyykjqsu16q2o
When DAV-aware nodes want to return properties, they might need to
have xml attributes or single instances of sub-elements.
Example:
return ('aprop', 'D:', ('foo', 'D:', None, { 'name': 'bar'}))
will result in xml:
<D:prop>
<D:aprop><D:foo name="bar"/></D:aprop>
</D:prop>
bzr revid: p_christ@hol.gr-20101012104029-gq6hhjki4i52n8qh
This should solve the following: When we reply to PROPFIND requests etc,
we provide the absolute url of ourselves like:
<D:href>http://our.server:8069/webdav/mydb/Documents</D:href>
The problem is that if we bind to 0.0.0.0 and the interface, which the
client connects through, doesn't resolve from "our.server", then we are
practically redirecting the client to the wrong address.
This is expected to happen at openerp servers w/o full qualified names and
reverse resolution of their interfaces.
Requires server patch (at websrv_lib) to function, fallbacks to old code
on trouble.
bzr revid: p_christ@hol.gr-20100926163210-v8scuvhg991jbbzc
An ETag should refer to the requested uri, so a Location header will
render it invalid anyway. Gnome's evolution has an if-else block that
first checks ETag and then Location.
bzr revid: p_christ@hol.gr-20100812111025-xoilqlb956moovgv
We must check the "If-Match" header. Its value is quoted, so try to
remove quotes (crude way), and also consume any body before we respond
with 4xx.
Conflicts:
document_webdav/webdav_server.py
bzr revid: p_christ@hol.gr-20100801083828-lh9htiqlwewvhloh
This property is used in DAV folders, CalDAV, GroupDAV and CardDAV, with
different extensions at each one. So, it needs an extensible API for the
value it may return.
Typical response in a calendar dir:
<D:resourcetype>
<D:collection>
<ns0:vevent-collection xmlns:ns0="http://groupdav.org"/>
<ns1:calendar xmlns:ns1="urn:ietf:params:xml:ns:caldav" />
</D:resourcetype>
The last two elements have to be added by subclassing the node in the
caldav module.
Conflicts:
document_webdav/dav_fs.py
bzr revid: p_christ@hol.gr-20100801083722-nh4ty58fy0hobrgk