[CalendarServer-changes] [2002] CalendarServer/branches/release/CalendarServer-1.1-dev/twistedcaldav /directory

source_changes at macosforge.org source_changes at macosforge.org
Tue Oct 30 11:42:26 PDT 2007


Revision: 2002
          http://trac.macosforge.org/projects/calendarserver/changeset/2002
Author:   wsanchez at apple.com
Date:     2007-10-30 11:42:26 -0700 (Tue, 30 Oct 2007)

Log Message:
-----------
Pulled up r1996 from trunk.

Modified Paths:
--------------
    CalendarServer/branches/release/CalendarServer-1.1-dev/twistedcaldav/directory/calendaruserproxy.py
    CalendarServer/branches/release/CalendarServer-1.1-dev/twistedcaldav/directory/test/test_proxyprincipalmembers.py

Modified: CalendarServer/branches/release/CalendarServer-1.1-dev/twistedcaldav/directory/calendaruserproxy.py
===================================================================
--- CalendarServer/branches/release/CalendarServer-1.1-dev/twistedcaldav/directory/calendaruserproxy.py	2007-10-30 18:34:40 UTC (rev 2001)
+++ CalendarServer/branches/release/CalendarServer-1.1-dev/twistedcaldav/directory/calendaruserproxy.py	2007-10-30 18:42:26 UTC (rev 2002)
@@ -314,7 +314,7 @@
         if self.hasEditableMembership():
             # Get member UIDs from database and map to principal resources
             members = self._index().getMembers(self.uid)
-            return [self.pcollection.principalForUID(uid) for uid in members]
+            return [p for p in [self.pcollection.principalForUID(uid) for uid in members] if p]
         else:
             # Fixed proxies are only for read-write - the read-only list is empty
             if self.proxyType == "calendar-proxy-write":
@@ -329,7 +329,7 @@
     def groupMemberships(self):
         # Get membership UIDs and map to principal resources
         memberships = self._index().getMemberships(self.uid)
-        return [self.pcollection.principalForUID(uid) for uid in memberships]
+        return [p for p in [self.pcollection.principalForUID(uid) for uid in memberships] if p]
 
     def hasEditableMembership(self):
         return self.parent.hasEditableProxyMembership()

Modified: CalendarServer/branches/release/CalendarServer-1.1-dev/twistedcaldav/directory/test/test_proxyprincipalmembers.py
===================================================================
--- CalendarServer/branches/release/CalendarServer-1.1-dev/twistedcaldav/directory/test/test_proxyprincipalmembers.py	2007-10-30 18:34:40 UTC (rev 2001)
+++ CalendarServer/branches/release/CalendarServer-1.1-dev/twistedcaldav/directory/test/test_proxyprincipalmembers.py	2007-10-30 18:42:26 UTC (rev 2002)
@@ -112,6 +112,41 @@
         memberships = set([p.principalUID() for p in memberships])
         self.assertEquals(memberships, set(('non_calendar_proxy#calendar-proxy-write',)))
 
+    def test_groupMembersProxyMissingUser(self):
+        """
+        DirectoryPrincipalResource.groupMembers()
+        """
+        
+        # Setup the fake entry in the DB
+        proxy = self._getRecordByShortName(DirectoryService.recordType_users, "cdaboo")
+        proxy_group = proxy.getChild("calendar-proxy-write")
+        members = proxy_group._index().getMembers("%s#calendar-proxy-write" % (proxy.principalUID(),))
+        members.add("12345")
+        proxy_group._index().setGroupMembers("%s#calendar-proxy-write" % (proxy.principalUID(),), members)
+
+        # Do the failing lookup
+        members = self._getRecordByShortName(DirectoryService.recordType_users, "cdaboo").getChild("calendar-proxy-write").groupMembers()
+        members = set([p.displayName() for p in members])
+        self.assertEquals(members, set())
+
+    def test_groupMembershipsMissingUser(self):
+        """
+        DirectoryPrincipalResource.groupMembers()
+        """
+        
+        # Setup the fake entry in the DB
+        fake_uid = "12345"
+        proxy = self._getRecordByShortName(DirectoryService.recordType_users, "cdaboo")
+        proxy_group = proxy.getChild("calendar-proxy-write")
+        members = proxy_group._index().getMembers("%s#calendar-proxy-write" % (fake_uid,))
+        members.add("%s#calendar-proxy-write" % (proxy.principalUID(),))
+        proxy_group._index().setGroupMembers("%s#calendar-proxy-write" % (fake_uid,), members)
+
+        # Do the failing lookup
+        members = self._getRecordByShortName(DirectoryService.recordType_users, "cdaboo").getChild("calendar-proxy-write").groupMemberships()
+        members = set([p.displayName() for p in members])
+        self.assertEquals(members, set())
+
     def _getRecordByShortName(self, type, name):
         """
         @return: an iterable of tuples

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20071030/c11d44f6/attachment.html


More information about the calendarserver-changes mailing list