[CalendarServer-changes] [6392] CalendarServer/trunk/twistedcaldav/storebridge.py

source_changes at macosforge.org source_changes at macosforge.org
Thu Sep 30 09:00:30 PDT 2010


Revision: 6392
          http://trac.macosforge.org/projects/calendarserver/changeset/6392
Author:   cdaboo at apple.com
Date:     2010-09-30 09:00:29 -0700 (Thu, 30 Sep 2010)
Log Message:
-----------
Make sure that attendee proxies can access dropbox attachments.

Modified Paths:
--------------
    CalendarServer/trunk/twistedcaldav/storebridge.py

Modified: CalendarServer/trunk/twistedcaldav/storebridge.py
===================================================================
--- CalendarServer/trunk/twistedcaldav/storebridge.py	2010-09-30 15:59:54 UTC (rev 6391)
+++ CalendarServer/trunk/twistedcaldav/storebridge.py	2010-09-30 16:00:29 UTC (rev 6392)
@@ -524,7 +524,7 @@
     def accessControlList(self, *a, **kw):
         """
         All principals identified as ATTENDEEs on the event for this dropbox
-        may read all its children.
+        may read all its children. Also include proxies of ATTENDEEs.
         """
         d = super(CalendarObjectDropbox, self).accessControlList(*a, **kw)
         def moreACLs(originalACL):
@@ -539,19 +539,35 @@
                     calendarUserAddress
                 )
                 principalURL = principal.principalURL()
-                if othersCanWrite:
-                    privileges = [davxml.Privilege(davxml.All())]
-                else:
-                    privileges = [
-                        davxml.Privilege(davxml.Read()),
-                        davxml.Privilege(davxml.ReadCurrentUserPrivilegeSet())
-                    ]
+                writePrivileges = [
+                    davxml.Privilege(davxml.Read()),
+                    davxml.Privilege(davxml.ReadCurrentUserPrivilegeSet()),
+                    davxml.Privilege(davxml.Write()),
+                ]
+                readPrivileges = [
+                    davxml.Privilege(davxml.Read()),
+                    davxml.Privilege(davxml.ReadCurrentUserPrivilegeSet()),
+                ]
+                privileges = writePrivileges if othersCanWrite else readPrivileges
                 newACEs.append(davxml.ACE(
                     davxml.Principal(davxml.HRef(principalURL)),
                     davxml.Grant(*privileges),
                     davxml.Protected(),
                     TwistedACLInheritable(),
                 ))
+                newACEs.append(davxml.ACE(
+                    davxml.Principal(davxml.HRef(joinURL(principalURL, "calendar-proxy-write/"))),
+                    davxml.Grant(*privileges),
+                    davxml.Protected(),
+                    TwistedACLInheritable(),
+                ))
+                newACEs.append(davxml.ACE(
+                    davxml.Principal(davxml.HRef(joinURL(principalURL, "calendar-proxy-read/"))),
+                    davxml.Grant(*readPrivileges),
+                    davxml.Protected(),
+                    TwistedACLInheritable(),
+                ))
+
             return davxml.ACL(*tuple(newACEs + originalACEs))
         d.addCallback(moreACLs)
         return d
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20100930/2a67302e/attachment.html>


More information about the calendarserver-changes mailing list