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

source_changes at macosforge.org source_changes at macosforge.org
Wed Nov 14 20:15:12 PST 2007


Revision: 2010
          http://trac.macosforge.org/projects/calendarserver/changeset/2010
Author:   cdaboo at apple.com
Date:     2007-11-14 20:15:10 -0800 (Wed, 14 Nov 2007)

Log Message:
-----------
Make sure calendar-proxy is only advertised when enabled.

Modified Paths:
--------------
    CalendarServer/trunk/twistedcaldav/caldavxml.py
    CalendarServer/trunk/twistedcaldav/customxml.py
    CalendarServer/trunk/twistedcaldav/directory/calendaruserproxy.py
    CalendarServer/trunk/twistedcaldav/resource.py
    CalendarServer/trunk/twistedcaldav/test/test_config.py

Modified: CalendarServer/trunk/twistedcaldav/caldavxml.py
===================================================================
--- CalendarServer/trunk/twistedcaldav/caldavxml.py	2007-11-14 22:22:23 UTC (rev 2009)
+++ CalendarServer/trunk/twistedcaldav/caldavxml.py	2007-11-15 04:15:10 UTC (rev 2010)
@@ -46,6 +46,13 @@
 
 caldav_namespace = "urn:ietf:params:xml:ns:caldav"
 
+caldav_compliance = (
+    "calendar-access",
+    "calendar-schedule",
+    "calendar-availability",
+    "inbox-availability",
+)
+
 class CalDAVElement (davxml.WebDAVElement):
     """
     CalDAV XML element.

Modified: CalendarServer/trunk/twistedcaldav/customxml.py
===================================================================
--- CalendarServer/trunk/twistedcaldav/customxml.py	2007-11-14 22:22:23 UTC (rev 2009)
+++ CalendarServer/trunk/twistedcaldav/customxml.py	2007-11-15 04:15:10 UTC (rev 2010)
@@ -32,6 +32,10 @@
 
 calendarserver_namespace = "http://calendarserver.org/ns/"
 
+calendarserver_proxy_compliance = (
+    "calendar-proxy",
+)
+
 class TwistedGUIDProperty (davxml.WebDAVTextElement):
     """
     Contains the GUID value for a directory record corresponding to a principal.

Modified: CalendarServer/trunk/twistedcaldav/directory/calendaruserproxy.py
===================================================================
--- CalendarServer/trunk/twistedcaldav/directory/calendaruserproxy.py	2007-11-14 22:22:23 UTC (rev 2009)
+++ CalendarServer/trunk/twistedcaldav/directory/calendaruserproxy.py	2007-11-15 04:15:10 UTC (rev 2010)
@@ -35,6 +35,8 @@
 from twisted.web2.dav.util import joinURL
 from twisted.web2.http import HTTPError, StatusResponse
 
+from twistedcaldav import caldavxml
+from twistedcaldav import customxml
 from twistedcaldav.config import config
 from twistedcaldav.extensions import DAVFile, DAVPrincipalResource
 from twistedcaldav.extensions import ReadOnlyWritePropertiesResourceMixIn
@@ -80,12 +82,10 @@
     """
 
     def davComplianceClasses(self):
-        return tuple(super(CalendarUserProxyPrincipalResource, self).davComplianceClasses()) + (
-            "calendar-access",
-            "calendar-schedule",
-            "calendar-availability",
-            "calendar-proxy",
-        )
+        extra_compliance = caldavxml.caldav_compliance
+        if config.EnableProxyPrincipals:
+            extra_compliance += customxml.calendarserver_proxy_compliance
+        return tuple(super(CalendarUserProxyPrincipalResource, self).davComplianceClasses()) + extra_compliance
 
     def __init__(self, path, parent, proxyType):
         """

Modified: CalendarServer/trunk/twistedcaldav/resource.py
===================================================================
--- CalendarServer/trunk/twistedcaldav/resource.py	2007-11-14 22:22:23 UTC (rev 2009)
+++ CalendarServer/trunk/twistedcaldav/resource.py	2007-11-15 04:15:10 UTC (rev 2010)
@@ -125,13 +125,10 @@
     ##
 
     def davComplianceClasses(self):
-        return tuple(super(CalDAVResource, self).davComplianceClasses()) + (
-            "calendar-access",
-            "calendar-schedule",
-            "calendar-availability",
-            "inbox-availability",
-            "calendar-proxy",
-        )
+        extra_compliance = caldavxml.caldav_compliance
+        if config.EnableProxyPrincipals:
+            extra_compliance += customxml.calendarserver_proxy_compliance
+        return tuple(super(CalDAVResource, self).davComplianceClasses()) + extra_compliance
 
     liveProperties = DAVResource.liveProperties + (
         (caldav_namespace, "supported-calendar-component-set"),
@@ -490,13 +487,10 @@
     implements(ICalendarPrincipalResource)
 
     def davComplianceClasses(self):
-        return tuple(super(CalendarPrincipalResource, self).davComplianceClasses()) + (
-            "calendar-access",
-            "calendar-schedule",
-            "calendar-availability",
-            "inbox-availability",
-            "calendar-proxy",
-        )
+        extra_compliance = caldavxml.caldav_compliance
+        if config.EnableProxyPrincipals:
+            extra_compliance += customxml.calendarserver_proxy_compliance
+        return tuple(super(CalDAVResource, self).davComplianceClasses()) + extra_compliance
 
     liveProperties = tuple(DAVPrincipalResource.liveProperties) + (
         (caldav_namespace, "calendar-home-set"        ),

Modified: CalendarServer/trunk/twistedcaldav/test/test_config.py
===================================================================
--- CalendarServer/trunk/twistedcaldav/test/test_config.py	2007-11-14 22:22:23 UTC (rev 2009)
+++ CalendarServer/trunk/twistedcaldav/test/test_config.py	2007-11-15 04:15:10 UTC (rev 2010)
@@ -21,6 +21,7 @@
 from twistedcaldav.py.plistlib import writePlist
 
 from twistedcaldav.config import config, defaultConfig, ConfigurationError
+from twistedcaldav.static import CalDAVFile
 
 testConfig = """<?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
@@ -213,3 +214,14 @@
         config.updateDefaults({'Foo': 'bar'})
 
         self.assertNotIn('Foo', defaultConfig)
+
+    def testComplianceClasses(self):
+        
+        resource = CalDAVFile("/")
+        
+        config.EnableProxyPrincipals = True
+        self.assertTrue("calendar-proxy" in resource.davComplianceClasses())
+        
+        config.EnableProxyPrincipals = False
+        self.assertTrue("calendar-proxy" not in resource.davComplianceClasses())
+        
\ No newline at end of file

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20071114/969e1d5e/attachment-0001.html


More information about the calendarserver-changes mailing list