[CalendarServer-changes] [4789] CalendarServer/trunk/twistedcaldav/directory
source_changes at macosforge.org
source_changes at macosforge.org
Fri Nov 20 09:04:34 PST 2009
Revision: 4789
http://trac.macosforge.org/projects/calendarserver/changeset/4789
Author: cdaboo at apple.com
Date: 2009-11-20 09:04:31 -0800 (Fri, 20 Nov 2009)
Log Message:
-----------
Fix for duplicate proxy principal listing.
Modified Paths:
--------------
CalendarServer/trunk/twistedcaldav/directory/principal.py
CalendarServer/trunk/twistedcaldav/directory/test/test_proxyprincipalmembers.py
Modified: CalendarServer/trunk/twistedcaldav/directory/principal.py
===================================================================
--- CalendarServer/trunk/twistedcaldav/directory/principal.py 2009-11-20 16:50:30 UTC (rev 4788)
+++ CalendarServer/trunk/twistedcaldav/directory/principal.py 2009-11-20 17:04:31 UTC (rev 4789)
@@ -686,6 +686,13 @@
proxyFors.update(proxies)
+ uids = set()
+ for principal in tuple(proxyFors):
+ if principal.principalUID() in uids:
+ proxyFors.remove(principal)
+ else:
+ uids.add(principal.principalUID())
+
returnValue(proxyFors)
def _getRelatives(self, method, record=None, relatives=None, records=None, proxy=None, infinity=False):
Modified: CalendarServer/trunk/twistedcaldav/directory/test/test_proxyprincipalmembers.py
===================================================================
--- CalendarServer/trunk/twistedcaldav/directory/test/test_proxyprincipalmembers.py 2009-11-20 16:50:30 UTC (rev 4788)
+++ CalendarServer/trunk/twistedcaldav/directory/test/test_proxyprincipalmembers.py 2009-11-20 17:04:31 UTC (rev 4789)
@@ -120,8 +120,8 @@
def _proxyForTest(self, recordType, recordName, expectedProxies, read_write):
principal = self._getPrincipalByShortName(recordType, recordName)
proxies = (yield principal.proxyFor(read_write))
- proxies = set([principal.displayName() for principal in proxies])
- self.assertEquals(proxies, set(expectedProxies))
+ proxies = sorted([principal.displayName() for principal in proxies])
+ self.assertEquals(proxies, sorted(expectedProxies))
def test_groupMembersRegular(self):
"""
@@ -317,6 +317,21 @@
True
)
+ @inlineCallbacks
+ def test_proxyForDuplicates(self):
+
+ yield self._addProxy(
+ (DirectoryService.recordType_locations, "gemini",),
+ "calendar-proxy-write",
+ (DirectoryService.recordType_groups, "grunts",),
+ )
+
+ yield self._proxyForTest(
+ DirectoryService.recordType_users, "wsanchez",
+ ("Mecury Seven", "Gemini Twelve", "Apollo Eleven", "Orion", ),
+ True
+ )
+
def test_readOnlyProxyFor(self):
return self._proxyForTest(
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20091120/d9831d43/attachment-0001.html>
More information about the calendarserver-changes
mailing list