[CalendarServer-changes] [1017] CalendarServer/trunk/twistedcaldav/directory/principal.py

source_changes at macosforge.org source_changes at macosforge.org
Wed Jan 10 19:11:34 PST 2007


Revision: 1017
          http://trac.macosforge.org/projects/calendarserver/changeset/1017
Author:   cdaboo at apple.com
Date:     2007-01-10 19:11:33 -0800 (Wed, 10 Jan 2007)

Log Message:
-----------
Allow http/https URIs as calendar user addresses to match principals with and without a trailing
"/" character. This is in lieu of a proper way to do comparisons between URIs (calendar user addresses)
that does proper canonicalization of the URI components.

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

Modified: CalendarServer/trunk/twistedcaldav/directory/principal.py
===================================================================
--- CalendarServer/trunk/twistedcaldav/directory/principal.py	2007-01-11 02:33:40 UTC (rev 1016)
+++ CalendarServer/trunk/twistedcaldav/directory/principal.py	2007-01-11 03:11:33 UTC (rev 1017)
@@ -131,11 +131,23 @@
         if principal:
             return principal
 
-        record = self.directory.recordWithCalendarUserAddress(address)
-        if record is None:
-            return None
+        # Special case server absolute URIs
+        if address.startswith("http:") or address.startswith("https:"):
+            if address.endswith("/"):
+                altaddress = address[:-1]
+            else:
+                altaddress = address + "/"
+            addresses = (address, altaddress,)
         else:
-            return self.principalForRecord(record)
+            addresses = (address,)
+                
+        # Next try looking it up in the directory
+        for addr in addresses:
+            record = self.directory.recordWithCalendarUserAddress(addr)
+            if record is not None:
+                return self.principalForRecord(record)
+        
+        return None
 
     ##
     # Static

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


More information about the calendarserver-changes mailing list