[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