[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