shared xDAV resources

Bron Gondwana brong at fastmailteam.com
Sat Apr 7 20:25:09 EDT 2018


Ken knows this code best.  I bet there's something which is requiring
that there's a user on the mboxname because we implement the same
behaviour at FastMail by having a separate user on which shared
resources are kept.  The DAV resources are stored per-user, and
without a place to keep them for "shared calendars" that code might
just not be accessible.  I'm sure it would be possible to create a
shared DAV database as well for this case, but it just needs some
programming effort.
Bron.


On Sun, 8 Apr 2018, at 07:30, Anatoli wrote:
> Hi All,
> 
>  I'm trying to understand the code responsible for enumerating user
>  calendars (and xDAV resources in general) to try to make the
>  discovery work for shared resources too (currently there's no way to
>  access shared resources with Apple xDAV client implementation, yes
>  with Thunderbird as it doesn't use the discovery mechanism, but
>  instead should be pointed to the exact URL for each calendar). If I
>  understand it correctly, the functionality is in imap/http_caldav.c.> 
>  Could you please point me to the place where the enumeration occurs
>  and briefly mention how the general workflow looks like?> 
>  The client asks for:
> 
> PROPFIND /dav/calendars/user/<user at domain>/
>
>  <A:propfind xmlns:A="DAV:"> ...> 
>  The server responds with:
> 
> HTTP/1.1 207 Multi-Status
>
>  <A:multistatus xmlns:A="DAV:" ...>
>    <A:response>
>      <A:href>/dav/calendars/user/<user at domain>/</A:href>
>      <A:propstat> ... </A:response>
>    <A:response>
>      <A:href>/dav/calendars/user/<user at domain>/Default/</A:href>
>      <A:propstat>
>        <A:prop> ...> 
>  The idea is to include in the returned lists the shared calendars too
>  with the discovery logic based on the IMAP shared folders.> 
>  Below goes the initial exchange between the calendar app on iOS
>  10.2.6 and Cyrus 3.0.5 when the exact URL (/dav/calendars/shared/)
>  for the shared calendar is provided in the advanced settings of the
>  app (the URL finally resets to the user principals folder
>  (/dav/principals/user/t3 at domain.com/) as iOS is pointed to it by
>  Cyrus). In the attached file goes the telemetry for the rest of the
>  communication.> 
>  Thanks,
>  Anatoli
> 
> ---------- t3 at domain.com Sun Mar 25 06:05:36 2018
>
>  <1521968736<*PROPFIND* */dav/calendars/shared/* HTTP/1.1 Accept: */*
>  Content-type: text/xml Connection: keep-alive Content-length: 181
>  Host: mail.domain.com User-agent: iOS/11.2.6 (15D100) accountsd/1.0
>  Prefer: return=minimal Depth: 0 Brief: t Accept-language: en-us
>  Authorization: Basic ... Accept-encoding: br, gzip, deflate
>
>  <1521968736<<?xml version="1.0" encoding="UTF-8"?> <A:propfind
>  xmlns:A="DAV:">
>    <A:prop>
>      <A:current-user-principal/>
>      <A:principal-URL/>
>      <A:resourcetype/> </A:prop> </A:propfind>
>
>
>  >1521968736>HTTP/1.1 207 Multi-Status
>  Date: Sun, 25 Mar 2018 09:05:36 GMT Strict-Transport-Security: max-
>  age=600 Vary: Accept-Encoding, Brief, Prefer Preference-Applied:
>  return=minimal Content-Type: application/xml; charset=utf-8 Content-
>  Length: 546
>
>  <?xml version="1.0" encoding="utf-8"?> <A:multistatus xmlns:A="DAV:"
>  xmlns:C="urn:ietf:params:xml:ns:caldav">
>    <A:response>
>      <A:href>*/dav/calendars/shared/*</A:href>
>      <A:propstat>
>        <A:prop>
>          <A:current-user-principal>
>            <A:href>*/dav/principals/user/t3 at domain.com/*</A:href> </A:current-user-
>               principal>
>          <A:resourcetype>
>            <A:collection/>
>            <C:calendar/> </A:resourcetype> </A:prop>
>        <A:status>HTTP/1.1 200 OK</A:status> </A:propstat>
>           </A:response> </A:multistatus>
>
>  <1521968736<OPTIONS /dav/principals/user/t3%40domain.com/ HTTP/1.1
>  Host: mail.domain.com Connection: keep-alive Accept: */* User-Agent:
>  iOS/11.2.6 (15D100) accountsd/1.0 Accept-Language: en-us Content-
>  Length: 0 Accept-Encoding: br, gzip, deflate
>
>  >1521968736>HTTP/1.1 200 OK
>  Date: Sun, 25 Mar 2018 09:05:36 GMT Strict-Transport-Security: max-
>  age=600 Cache-Control: no-cache Link: </dav/principals/.server-info>;
>  rel="server-info"; token="80769c2c66d340ecd178710db26d56b9c4699e3e"
>  DAV: 1, 2, 3, access-control, extended-mkcol, resource-sharing DAV:
>  calendar-access, calendar-auto-schedule DAV: calendar-query-extended,
>  calendar-availability, calendar-managed-attachments DAV: calendarserver-
>  sharing, inbox-availability DAV: addressbook Allow: OPTIONS, GET,
>  HEAD Allow: PROPFIND, REPORT, COPY Content-Length: 0> Email had 1 attachment:


>  * telemetry.log
>   36k (text/x-log)

--
  Bron Gondwana, CEO, FastMail Pty Ltd
  brong at fastmailteam.com


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.andrew.cmu.edu/pipermail/cyrus-devel/attachments/20180408/f4ebf631/attachment.html>


More information about the Cyrus-devel mailing list