[CalendarServer-changes] [5551] CalendarServer/trunk/twistedcaldav

source_changes at macosforge.org source_changes at macosforge.org
Fri Apr 30 09:44:33 PDT 2010


Revision: 5551
          http://trac.macosforge.org/projects/calendarserver/changeset/5551
Author:   cdaboo at apple.com
Date:     2010-04-30 09:44:31 -0700 (Fri, 30 Apr 2010)
Log Message:
-----------
Make shared calendar resource a link resource. Fix write proxy/sharing privileges.

Modified Paths:
--------------
    CalendarServer/trunk/twistedcaldav/linkresource.py
    CalendarServer/trunk/twistedcaldav/sharedcalendar.py
    CalendarServer/trunk/twistedcaldav/sharing.py

Modified: CalendarServer/trunk/twistedcaldav/linkresource.py
===================================================================
--- CalendarServer/trunk/twistedcaldav/linkresource.py	2010-04-30 16:42:52 UTC (rev 5550)
+++ CalendarServer/trunk/twistedcaldav/linkresource.py	2010-04-30 16:44:31 UTC (rev 5551)
@@ -73,7 +73,7 @@
         return self.linkedResource(request)
 
     def getChild(self, name):
-        return self._hostedResource.getChild(name)
+        return self._linkedResource.getChild(name)
 
     @inlineCallbacks
     def hasProperty(self, property, request):

Modified: CalendarServer/trunk/twistedcaldav/sharedcalendar.py
===================================================================
--- CalendarServer/trunk/twistedcaldav/sharedcalendar.py	2010-04-30 16:42:52 UTC (rev 5550)
+++ CalendarServer/trunk/twistedcaldav/sharedcalendar.py	2010-04-30 16:44:31 UTC (rev 5551)
@@ -14,13 +14,9 @@
 # limitations under the License.
 ##
 
-from twext.python.log import LoggingMixIn
-
 from twisted.internet.defer import inlineCallbacks, returnValue
 
-from twistedcaldav.extensions import DAVResource
-from twistedcaldav.resource import CalDAVComplianceMixIn
-from twistedcaldav.sharing import SharedCollectionMixin
+from twistedcaldav.linkresource import LinkResource
 
 __all__ = [
     "SharedCalendarResource",
@@ -30,56 +26,20 @@
 Sharing behavior
 """
 
-class SharedCalendarResource(CalDAVComplianceMixIn, SharedCollectionMixin, DAVResource, LoggingMixIn):
+class SharedCalendarResource(LinkResource):
     """
     This is similar to a WrapperResource except that we locate our shared calendar resource dynamically. 
     """
     
     def __init__(self, parent, share):
-        self.parent = parent
         self.share = share
-        super(SharedCalendarResource, self).__init__(self.parent.principalCollections())
+        super(SharedCalendarResource, self).__init__(parent, None)
 
     @inlineCallbacks
-    def hostedResource(self, request):
+    def linkedResource(self, request):
         
-        if not hasattr(self, "_hostedResource"):
-            self._hostedResource = (yield request.locateResource(self.share.hosturl))
+        if not hasattr(self, "_linkedResource"):
+            self._linkedResource = (yield request.locateResource(self.share.hosturl))
             ownerPrincipal = (yield self.parent.ownerPrincipal(request))
-            self._hostedResource.setVirtualShare(ownerPrincipal, self.share)
-        returnValue(self._hostedResource)
-
-    def isCollection(self):
-        return True
-
-    def locateChild(self, request, segments):
-        
-        def _defer(result):
-            return (result, segments)
-        d = self.hostedResource(request)
-        d.addCallback(_defer)
-        return d
-
-    def renderHTTP(self, request):
-        return self.hostedResource(request)
-
-    def getChild(self, name):
-        return self._hostedResource.getChild(name)
-
-    @inlineCallbacks
-    def hasProperty(self, property, request):
-        hosted = (yield self.hostedResource(request))
-        result = (yield hosted.hasProperty(property, request))
-        returnValue(result)
-
-    @inlineCallbacks
-    def readProperty(self, property, request):
-        hosted = (yield self.hostedResource(request))
-        result = (yield hosted.readProperty(property, request))
-        returnValue(result)
-
-    @inlineCallbacks
-    def writeProperty(self, property, request):
-        hosted = (yield self.hostedResource(request))
-        result = (yield hosted.writeProperty(property, request))
-        returnValue(result)
+            self._linkedResource.setVirtualShare(ownerPrincipal, self.share)
+        returnValue(self._linkedResource)

Modified: CalendarServer/trunk/twistedcaldav/sharing.py
===================================================================
--- CalendarServer/trunk/twistedcaldav/sharing.py	2010-04-30 16:42:52 UTC (rev 5550)
+++ CalendarServer/trunk/twistedcaldav/sharing.py	2010-04-30 16:44:31 UTC (rev 5551)
@@ -237,9 +237,7 @@
                 # DAV:read/DAV:read-current-user-privilege-set/DAV:write access for this principal's calendar-proxy-write users.
                 davxml.ACE(
                     davxml.Principal(davxml.HRef(joinURL(self._shareePrincipal.principalURL(), "calendar-proxy-write/"))),
-                    davxml.Grant(
-                        davxml.Privilege(*proxyprivs),
-                    ),
+                    davxml.Grant(*proxyprivs),
                     davxml.Protected(),
                     TwistedACLInheritable(),
                 ),
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20100430/7c92406c/attachment.html>


More information about the calendarserver-changes mailing list