[CalendarServer-changes] [9211] CalendarServer/branches/users/gaya/ldapdirectorybacker/twistedcaldav /directory/opendirectorybacker.py

source_changes at macosforge.org source_changes at macosforge.org
Fri Apr 27 11:33:52 PDT 2012


Revision: 9211
          http://trac.macosforge.org/projects/calendarserver/changeset/9211
Author:   gaya at apple.com
Date:     2012-04-27 11:33:52 -0700 (Fri, 27 Apr 2012)
Log Message:
-----------
Fix parameter filters again

Modified Paths:
--------------
    CalendarServer/branches/users/gaya/ldapdirectorybacker/twistedcaldav/directory/opendirectorybacker.py

Modified: CalendarServer/branches/users/gaya/ldapdirectorybacker/twistedcaldav/directory/opendirectorybacker.py
===================================================================
--- CalendarServer/branches/users/gaya/ldapdirectorybacker/twistedcaldav/directory/opendirectorybacker.py	2012-04-27 17:42:37 UTC (rev 9210)
+++ CalendarServer/branches/users/gaya/ldapdirectorybacker/twistedcaldav/directory/opendirectorybacker.py	2012-04-27 18:33:52 UTC (rev 9211)
@@ -690,34 +690,19 @@
 
             def paramFilterElementExpression(propFilterAllOf, paramFilterElement):
 
-                # This is a map of possible params
-                paramFilterMap = {
-                    "PHOTO": { "ENCODING": ("B",), "TYPE": ("JPEG",), },
-                    "ADR": { "TYPE": ("WORK", "PREF", "POSTAL", "PARCEL",), },
-                    "LABEL": { "TYPE": ("POSTAL", "PARCEL",)},
-                    "TEL": { "TYPE": None, }, # None mean param can contain can be anything
-                    "EMAIL": { "TYPE": None, },
-                    "KEY": { "ENCODING": ("B",), "TYPE": ("PGPPUBILICKEY", "USERCERTIFICATE", "USERPKCS12DATA", "USERSMIMECERTIFICATE",) },
-                    "PHOTO": { "ENCODING": ("B",), "TYPE": ("JPEG",), },
-                    "URL": { "TYPE": ("WEBLOG", "HOMEPAGE",) },
-                    "IMPP": { "TYPE": ("PREF",), "X-SERVICE-TYPE": None, },
-                    "X-ABRELATEDNAMES" : { "TYPE":None, },
-                    "X-AIM": { "TYPE": ("PREF",), },
-                    "X-JABBER": { "TYPE": ("PREF",), },
-                    "X-MSN": { "TYPE": ("PREF",), },
-                    "X-ICQ": { "TYPE": ("PREF",), },
-                }
-                params = paramFilterMap.get(propFilter.filter_name.upper())
+                params = ABDirectoryQueryResult.vcardPropToParamMap.get(propFilter.filter_name.upper())
+                defined = params and paramFilterElement.filter_name.upper() in params
                 
-                if bool(params) != paramFilterElement.defined:
+                #defined test
+                if defined != paramFilterElement.defined:
                     return False
                 
-                if params:
-                    paramValues = params.get(paramFilterElement.filter_name.upper())
+                #parameter value text match
+                if defined and paramFilterElement.filters:
+                    paramValues = params[paramFilterElement.filter_name.upper()]
                     if paramValues and paramFilterElement.filters[0].text.upper() not in paramValues:
                         return False
                 
-                #perhaps this should return None if not in paramFilterMap
                 return True
 
             
@@ -1029,15 +1014,29 @@
     
     allDSQueryAttributes = list(set([attr for lookupAttributes in vcardPropToDSAttrMap.values()
                                       for attr in lookupAttributes]))
-
     binaryDSAttrNames = [attr[0] for attr in allDSQueryAttributes
                                 if isinstance(attr, tuple) ]
-
     stringDSAttrNames = [attr for attr in allDSQueryAttributes
                                 if isinstance(attr, str) ]
-
     allDSAttrNames = stringDSAttrNames + binaryDSAttrNames
    
+    # all possible generated parameters.
+    vcardPropToParamMap = {
+        "PHOTO": { "ENCODING": ("B",), "TYPE": ("JPEG",), },
+        "ADR": { "TYPE": ("WORK", "PREF", "POSTAL", "PARCEL",), },
+        "LABEL": { "TYPE": ("POSTAL", "PARCEL",)},
+        "TEL": { "TYPE": None, }, # None means param can contain can be anything
+        "EMAIL": { "TYPE": None, },
+        "KEY": { "ENCODING": ("B",), "TYPE": ("PGPPUBILICKEY", "USERCERTIFICATE", "USERPKCS12DATA", "USERSMIMECERTIFICATE",) },
+        "URL": { "TYPE": ("WEBLOG", "HOMEPAGE",) },
+        "IMPP": { "TYPE": ("PREF",), "X-SERVICE-TYPE": None, },
+        "X-ABRELATEDNAMES" : { "TYPE":None, },
+        "X-AIM": { "TYPE": ("PREF",), },
+        "X-JABBER": { "TYPE": ("PREF",), },
+        "X-MSN": { "TYPE": ("PREF",), },
+        "X-ICQ": { "TYPE": ("PREF",), },
+    }
+
     uidSeparator = "-cf07a1a2-"
 
     
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20120427/984f3998/attachment.html>


More information about the calendarserver-changes mailing list