[CalendarServer-changes] [3564] CalendarServer/trunk

source_changes at macosforge.org source_changes at macosforge.org
Mon Dec 22 10:41:44 PST 2008


Revision: 3564
          http://trac.macosforge.org/projects/calendarserver/changeset/3564
Author:   sagen at apple.com
Date:     2008-12-22 10:41:33 -0800 (Mon, 22 Dec 2008)
Log Message:
-----------
Adds expanded-group-membership property, and makes group-membership property non-expanding

Modified Paths:
--------------
    CalendarServer/trunk/run
    CalendarServer/trunk/twistedcaldav/customxml.py
    CalendarServer/trunk/twistedcaldav/directory/principal.py
    CalendarServer/trunk/twistedcaldav/resource.py

Modified: CalendarServer/trunk/run
===================================================================
--- CalendarServer/trunk/run	2008-12-22 18:40:44 UTC (rev 3563)
+++ CalendarServer/trunk/run	2008-12-22 18:41:33 UTC (rev 3564)
@@ -692,7 +692,7 @@
 
 caldavtester="${top}/CalDAVTester";
 
-svn_get "CalDAVTester" "${caldavtester}" "${svn_uri_base}/CalDAVTester/trunk" 3559;
+svn_get "CalDAVTester" "${caldavtester}" "${svn_uri_base}/CalDAVTester/trunk" 3563;
 
 #
 # Calendar Server

Modified: CalendarServer/trunk/twistedcaldav/customxml.py
===================================================================
--- CalendarServer/trunk/twistedcaldav/customxml.py	2008-12-22 18:40:44 UTC (rev 3563)
+++ CalendarServer/trunk/twistedcaldav/customxml.py	2008-12-22 18:41:33 UTC (rev 3564)
@@ -385,6 +385,17 @@
 
     allowed_children = { (dav_namespace, "href"): (0, None) }
 
+class ExpandedGroupMembership (davxml.WebDAVElement):
+    """
+    The expanded list of groups a principal is a member of
+    """
+    namespace = calendarserver_namespace
+    name = "expanded-group-membership"
+    protected = True
+    hidden = True
+
+    allowed_children = { (dav_namespace, "href"): (0, None) }
+
 class IScheduleInbox (davxml.WebDAVEmptyElement):
     """
     Denotes the resourcetype of a iSchedule Inbox.

Modified: CalendarServer/trunk/twistedcaldav/directory/principal.py
===================================================================
--- CalendarServer/trunk/twistedcaldav/directory/principal.py	2008-12-22 18:40:44 UTC (rev 3563)
+++ CalendarServer/trunk/twistedcaldav/directory/principal.py	2008-12-22 18:41:33 UTC (rev 3564)
@@ -630,13 +630,13 @@
         return succeed(self._getRelatives("members", infinity=True))
 
     @inlineCallbacks
-    def groupMemberships(self):
-        groups = self._getRelatives("groups", infinity=True)
+    def groupMemberships(self, infinity=False):
+        groups = self._getRelatives("groups", infinity=infinity)
 
         if config.EnableProxyPrincipals:
             # Get any directory specified proxies
-            groups.update(self._getRelatives("proxyFor", proxy='read-write', infinity=True))
-            groups.update(self._getRelatives("readOnlyProxyFor", proxy='read-only', infinity=True))
+            groups.update(self._getRelatives("proxyFor", proxy='read-write', infinity=infinity))
+            groups.update(self._getRelatives("readOnlyProxyFor", proxy='read-only', infinity=infinity))
 
             # Get proxy group UIDs and map to principal resources
             proxies = []
@@ -650,6 +650,10 @@
 
         returnValue(groups)
 
+    def expandedGroupMemberships(self):
+        return self.groupMemberships(infinity=True)
+
+
     @inlineCallbacks
     def proxyFor(self, read_write, resolve_memberships=True):
         proxyFors = set()

Modified: CalendarServer/trunk/twistedcaldav/resource.py
===================================================================
--- CalendarServer/trunk/twistedcaldav/resource.py	2008-12-22 18:40:44 UTC (rev 3563)
+++ CalendarServer/trunk/twistedcaldav/resource.py	2008-12-22 18:41:33 UTC (rev 3564)
@@ -851,6 +851,7 @@
         (calendarserver_namespace, "calendar-proxy-read-for"  ),
         (calendarserver_namespace, "calendar-proxy-write-for" ),
         (calendarserver_namespace, "expanded-group-member-set"),
+        (calendarserver_namespace, "expanded-group-membership"),
     )
 
     @classmethod
@@ -946,7 +947,13 @@
                     *[davxml.HRef(p.principalURL()) for p in principals]
                 ))
 
+            elif name == "expanded-group-membership":
+                principals = (yield self.expandedGroupMemberships())
+                returnValue(customxml.ExpandedGroupMembership(
+                    *[davxml.HRef(p.principalURL()) for p in principals]
+                ))
 
+
         result = (yield super(CalendarPrincipalResource, self).readProperty(property, request))
         returnValue(result)
 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20081222/4727a19d/attachment-0001.html>


More information about the calendarserver-changes mailing list