[CalendarServer-changes] [2084] CalendarServer/branches/users/cdaboo/private_events-2081

source_changes at macosforge.org source_changes at macosforge.org
Wed Jan 2 09:21:05 PST 2008


Revision: 2084
          http://trac.macosforge.org/projects/calendarserver/changeset/2084
Author:   cdaboo at apple.com
Date:     2008-01-02 09:21:03 -0800 (Wed, 02 Jan 2008)

Log Message:
-----------
Config option to enable private events, and DAV compliance class (with some refactoring to allow adding new
compliance classes to be easier in the future).

Modified Paths:
--------------
    CalendarServer/branches/users/cdaboo/private_events-2081/conf/caldavd-test.plist
    CalendarServer/branches/users/cdaboo/private_events-2081/conf/caldavd.plist
    CalendarServer/branches/users/cdaboo/private_events-2081/twistedcaldav/config.py
    CalendarServer/branches/users/cdaboo/private_events-2081/twistedcaldav/customxml.py
    CalendarServer/branches/users/cdaboo/private_events-2081/twistedcaldav/directory/calendaruserproxy.py
    CalendarServer/branches/users/cdaboo/private_events-2081/twistedcaldav/resource.py
    CalendarServer/branches/users/cdaboo/private_events-2081/twistedcaldav/test/test_config.py

Modified: CalendarServer/branches/users/cdaboo/private_events-2081/conf/caldavd-test.plist
===================================================================
--- CalendarServer/branches/users/cdaboo/private_events-2081/conf/caldavd-test.plist	2008-01-02 16:42:55 UTC (rev 2083)
+++ CalendarServer/branches/users/cdaboo/private_events-2081/conf/caldavd-test.plist	2008-01-02 17:21:03 UTC (rev 2084)
@@ -330,7 +330,11 @@
   <key>EnableNotifications</key>
   <true/>
 
+  <!-- Private Events -->
+  <key>EnablePrivateEvents</key>
+  <true/>
 
+
   <!--
     Twisted
   -->

Modified: CalendarServer/branches/users/cdaboo/private_events-2081/conf/caldavd.plist
===================================================================
--- CalendarServer/branches/users/cdaboo/private_events-2081/conf/caldavd.plist	2008-01-02 16:42:55 UTC (rev 2083)
+++ CalendarServer/branches/users/cdaboo/private_events-2081/conf/caldavd.plist	2008-01-02 17:21:03 UTC (rev 2084)
@@ -264,6 +264,10 @@
   <key>EnableNotifications</key>
   <true/>
 
+  <!-- Private Events -->
+  <key>EnablePrivateEvents</key>
+  <true/>
 
+
 </dict>
 </plist>

Modified: CalendarServer/branches/users/cdaboo/private_events-2081/twistedcaldav/config.py
===================================================================
--- CalendarServer/branches/users/cdaboo/private_events-2081/twistedcaldav/config.py	2008-01-02 16:42:55 UTC (rev 2083)
+++ CalendarServer/branches/users/cdaboo/private_events-2081/twistedcaldav/config.py	2008-01-02 17:21:03 UTC (rev 2084)
@@ -145,6 +145,7 @@
     #
     "EnableDropBox"      : False, # Calendar Drop Box
     "EnableNotifications": False, # Drop Box Notifications
+    "EnablePrivateEvents": False, # Private Events
 
     #
     # Implementation details

Modified: CalendarServer/branches/users/cdaboo/private_events-2081/twistedcaldav/customxml.py
===================================================================
--- CalendarServer/branches/users/cdaboo/private_events-2081/twistedcaldav/customxml.py	2008-01-02 16:42:55 UTC (rev 2083)
+++ CalendarServer/branches/users/cdaboo/private_events-2081/twistedcaldav/customxml.py	2008-01-02 17:21:03 UTC (rev 2084)
@@ -34,6 +34,10 @@
     "calendar-proxy",
 )
 
+calendarserver_private_events_compliance = (
+    "calendarserver-private-events",
+)
+
 class TwistedGUIDProperty (davxml.WebDAVTextElement):
     """
     Contains the GUID value for a directory record corresponding to a principal.

Modified: CalendarServer/branches/users/cdaboo/private_events-2081/twistedcaldav/directory/calendaruserproxy.py
===================================================================
--- CalendarServer/branches/users/cdaboo/private_events-2081/twistedcaldav/directory/calendaruserproxy.py	2008-01-02 16:42:55 UTC (rev 2083)
+++ CalendarServer/branches/users/cdaboo/private_events-2081/twistedcaldav/directory/calendaruserproxy.py	2008-01-02 17:21:03 UTC (rev 2084)
@@ -33,11 +33,10 @@
 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
+from twistedcaldav.resource import CalDAVComplianceMixIn
 from twistedcaldav.sql import AbstractSQLDatabase
 from twistedcaldav.sql import db_prefix
 from twistedcaldav.static import AutoProvisioningFileMixIn
@@ -74,16 +73,13 @@
         # Permissions here are fixed, and are not subject to inherritance rules, etc.
         return succeed(self.defaultAccessControlList())
 
-class CalendarUserProxyPrincipalResource (AutoProvisioningFileMixIn, PermissionsMixIn, DAVPrincipalResource, DAVFile):
+class CalendarUserProxyPrincipalResource (AutoProvisioningFileMixIn, PermissionsMixIn, DAVPrincipalResource, DAVFile, CalDAVComplianceMixIn):
     """
     Calendar user proxy principal resource.
     """
 
     def davComplianceClasses(self):
-        extra_compliance = caldavxml.caldav_compliance
-        if config.EnableProxyPrincipals:
-            extra_compliance += customxml.calendarserver_proxy_compliance
-        return tuple(super(CalendarUserProxyPrincipalResource, self).davComplianceClasses()) + extra_compliance
+        return tuple(super(CalendarUserProxyPrincipalResource, self).davComplianceClasses()) + self.caldavComplianceClasses()
 
     def __init__(self, path, parent, proxyType):
         """

Modified: CalendarServer/branches/users/cdaboo/private_events-2081/twistedcaldav/resource.py
===================================================================
--- CalendarServer/branches/users/cdaboo/private_events-2081/twistedcaldav/resource.py	2008-01-02 16:42:55 UTC (rev 2083)
+++ CalendarServer/branches/users/cdaboo/private_events-2081/twistedcaldav/resource.py	2008-01-02 17:21:03 UTC (rev 2084)
@@ -19,6 +19,7 @@
 """
 
 __all__ = [
+    "CalDAVComplianceMixIn",
     "CalDAVResource",
     "CalendarPrincipalCollectionResource",
     "CalendarPrincipalResource",
@@ -59,7 +60,18 @@
 else:
     serverVersion = twisted.web2.server.VERSION + " TwistedCalDAV/?"
 
-class CalDAVResource (DAVResource):
+class CalDAVComplianceMixIn(object):
+
+    def caldavComplianceClasses(self):
+        extra_compliance = caldavxml.caldav_compliance
+        if config.EnableProxyPrincipals:
+            extra_compliance += customxml.calendarserver_proxy_compliance
+        if config.EnablePrivateEvents:
+            extra_compliance += customxml.calendarserver_private_events_compliance
+        return extra_compliance
+
+
+class CalDAVResource (DAVResource, CalDAVComplianceMixIn):
     """
     CalDAV resource.
 
@@ -118,10 +130,7 @@
     ##
 
     def davComplianceClasses(self):
-        extra_compliance = caldavxml.caldav_compliance
-        if config.EnableProxyPrincipals:
-            extra_compliance += customxml.calendarserver_proxy_compliance
-        return tuple(super(CalDAVResource, self).davComplianceClasses()) + extra_compliance
+        return tuple(super(CalDAVResource, self).davComplianceClasses()) + self.caldavComplianceClasses()
 
     liveProperties = DAVResource.liveProperties + (
         (caldav_namespace, "supported-calendar-component-set"),
@@ -471,7 +480,7 @@
             ),
         )
 
-class CalendarPrincipalResource (DAVPrincipalResource):
+class CalendarPrincipalResource (DAVPrincipalResource, CalDAVComplianceMixIn):
     """
     CalDAV principal resource.
 
@@ -480,10 +489,7 @@
     implements(ICalendarPrincipalResource)
 
     def davComplianceClasses(self):
-        extra_compliance = caldavxml.caldav_compliance
-        if config.EnableProxyPrincipals:
-            extra_compliance += customxml.calendarserver_proxy_compliance
-        return tuple(super(CalendarPrincipalResource, self).davComplianceClasses()) + extra_compliance
+        return tuple(super(CalendarPrincipalResource, self).davComplianceClasses()) + self.caldavComplianceClasses()
 
     liveProperties = tuple(DAVPrincipalResource.liveProperties) + (
         (caldav_namespace, "calendar-home-set"        ),

Modified: CalendarServer/branches/users/cdaboo/private_events-2081/twistedcaldav/test/test_config.py
===================================================================
--- CalendarServer/branches/users/cdaboo/private_events-2081/twistedcaldav/test/test_config.py	2008-01-02 16:42:55 UTC (rev 2083)
+++ CalendarServer/branches/users/cdaboo/private_events-2081/twistedcaldav/test/test_config.py	2008-01-02 17:21:03 UTC (rev 2084)
@@ -25,16 +25,15 @@
 <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
 <plist version="1.0">
 <dict>
-  <key>Verbose</key>
-  <true/>
-  <key>HTTPPort</key>
-  <integer>8008</integer>
+    <key>Verbose</key>
+    <true/>
+    <key>HTTPPort</key>
+    <integer>8008</integer>
 </dict>
 </plist>
 """
 
 def _testVerbose(testCase):
-    from twistedcaldav.config import config
     testCase.assertEquals(config.Verbose, True)
 
 
@@ -222,3 +221,9 @@
         
         config.EnableProxyPrincipals = False
         self.assertTrue("calendar-proxy" not in resource.davComplianceClasses())
+        
+        config.EnablePrivateEvents = True
+        self.assertTrue("calendarserver-private-events" in resource.davComplianceClasses())
+        
+        config.EnablePrivateEvents = False
+        self.assertTrue("calendarserver-private-events" not in resource.davComplianceClasses())

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20080102/2890dde7/attachment-0001.html


More information about the calendarserver-changes mailing list