确定CalDAV日历的访问权限

时间:2019-07-19 16:19:34

标签: php calendar access caldav kolab

我正在创建一个PHP应用程序,该应用程序会将事件写入CalDAV日历(Kolab组件)。为此,我要求提供相应用户的日历首页设置。在那之后,我只想使用我拥有写权限的日历。我收到的共享日历很可能只允许阅读。 那么在注册事件并收到错误消息之前,如何确定日历的访问权限?

谢谢。

1 个答案:

答案 0 :(得分:0)

要获取CalDAV(/ * DAV)资源/收集特权,您可以在检索日历列表时查询{DAV:}current-user-privilege-set属性。

这是RFC 3744 (WebDAV ACL)的一部分。 RFC中的示例:

   PROPFIND /papers/ HTTP/1.1
   Host: www.example.com
   Content-type: text/xml; charset="utf-8"
   Content-Length: xxx
   Depth: 0
   Authorization: Digest username="khare",
     realm="users@example.com", nonce="...",
     uri="/papers/", response="...", opaque="..."

   <?xml version="1.0" encoding="utf-8" ?>
   <D:propfind xmlns:D="DAV:">
     <D:prop>
       <D:current-user-privilege-set/>
     </D:prop>
   </D:propfind>
   HTTP/1.1 207 Multi-Status
   Content-Type: text/xml; charset="utf-8"
   Content-Length: xxx

   <?xml version="1.0" encoding="utf-8" ?>
   <D:multistatus xmlns:D="DAV:">
     <D:response>
     <D:href>http://www.example.com/papers/</D:href>
     <D:propstat>
       <D:prop>
         <D:current-user-privilege-set>
           <D:privilege><D:read/></D:privilege>
         </D:current-user-privilege-set>
       </D:prop>
       <D:status>HTTP/1.1 200 OK</D:status>
     </D:propstat>
     </D:response>
   </D:multistatus>