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

source_changes at macosforge.org source_changes at macosforge.org
Tue Jun 22 16:32:54 PDT 2010


Revision: 5804
          http://trac.macosforge.org/projects/calendarserver/changeset/5804
Author:   sagen at apple.com
Date:     2010-06-22 16:32:52 -0700 (Tue, 22 Jun 2010)
Log Message:
-----------
If EnableCalDAV is False, suppress the calendar-related DAV header values.

Modified Paths:
--------------
    CalendarServer/trunk/twistedcaldav/stdconfig.py
    CalendarServer/trunk/twistedcaldav/test/test_options.py

Modified: CalendarServer/trunk/twistedcaldav/stdconfig.py
===================================================================
--- CalendarServer/trunk/twistedcaldav/stdconfig.py	2010-06-22 22:04:00 UTC (rev 5803)
+++ CalendarServer/trunk/twistedcaldav/stdconfig.py	2010-06-22 23:32:52 UTC (rev 5804)
@@ -945,25 +945,30 @@
         partitions.clear()
 
 def _updateCompliance(configDict):
-    if configDict.Scheduling.CalDAV.OldDraftCompatibility:
-        compliance = caldavxml.caldav_full_compliance
+
+
+    if configDict.EnableCalDAV:
+        if configDict.Scheduling.CalDAV.OldDraftCompatibility:
+            compliance = caldavxml.caldav_full_compliance
+        else:
+            compliance = caldavxml.caldav_implicit_compliance
+        if configDict.EnableProxyPrincipals:
+            compliance += customxml.calendarserver_proxy_compliance
+        if configDict.EnablePrivateEvents:
+            compliance += customxml.calendarserver_private_events_compliance
+        if configDict.Scheduling.CalDAV.EnablePrivateComments:
+            compliance += customxml.calendarserver_private_comments_compliance
+        if config.Sharing.Enabled:
+            compliance += customxml.calendarserver_sharing_compliance
     else:
-        compliance = caldavxml.caldav_implicit_compliance
+        compliance = ()
 
-    if configDict.EnableProxyPrincipals:
-        compliance += customxml.calendarserver_proxy_compliance
-    if configDict.EnablePrivateEvents:
-        compliance += customxml.calendarserver_private_events_compliance
-    if configDict.Scheduling.CalDAV.EnablePrivateComments:
-        compliance += customxml.calendarserver_private_comments_compliance
     if configDict.EnableCardDAV:
         compliance += carddavxml.carddav_compliance
 
+    # Principal property search is always enabled
     compliance += customxml.calendarserver_principal_property_search_compliance
 
-    if config.Sharing.Enabled:
-        compliance += customxml.calendarserver_sharing_compliance
-
     configDict.CalDAVComplianceClasses = compliance
 
 

Modified: CalendarServer/trunk/twistedcaldav/test/test_options.py
===================================================================
--- CalendarServer/trunk/twistedcaldav/test/test_options.py	2010-06-22 22:04:00 UTC (rev 5803)
+++ CalendarServer/trunk/twistedcaldav/test/test_options.py	2010-06-22 23:32:52 UTC (rev 5804)
@@ -109,3 +109,38 @@
         request = SimpleRequest(self.site, "OPTIONS", "/")
 
         return self.send(request, do_test)
+
+    def test_dav_header_caldav_disabled(self):
+        """
+        DAV header does not advertise CalDAV
+        """
+        def do_test(response):
+            response = IResponse(response)
+
+            dav = response.headers.getHeader("dav")
+            if not dav: self.fail("no DAV header: %s" % (response.headers,))
+            self.assertIn("1", dav, "no DAV level 1 header")
+            self.assertNotIn("calendar-access", dav, "DAV calendar-access header")
+
+        config.EnableCalDAV = False
+        request = SimpleRequest(self.site, "OPTIONS", "/")
+
+        return self.send(request, do_test)
+
+    def test_dav_header_carddav_disabled(self):
+        """
+        DAV header does not advertise CardDAV
+        """
+        def do_test(response):
+            response = IResponse(response)
+
+            dav = response.headers.getHeader("dav")
+            if not dav: self.fail("no DAV header: %s" % (response.headers,))
+            self.assertIn("1", dav, "no DAV level 1 header")
+            self.assertNotIn("addressbook", dav, "DAV calendar-access header")
+
+        config.EnableCardDAV = False
+        request = SimpleRequest(self.site, "OPTIONS", "/")
+
+        return self.send(request, do_test)
+
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20100622/fcd16b43/attachment.html>


More information about the calendarserver-changes mailing list