[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