1""" 2filters.py - misc stuff for handling LDAP filter strings (see RFC2254) 3written by Michael Stroeder <michael@stroeder.com> 4 5See http://python-ldap.sourceforge.net for details. 6 7\$Id: filter.py,v 1.3 2003/05/26 08:34:03 stroeder Exp $ 8 9Compability: 10- Tested with Python 2.0+ 11""" 12 13__version__ = '0.0.2' 14 15 16def escape_filter_chars(assertion_value): 17 """ 18 Replace all special characters found in assertion_value 19 by quoted notation 20 """ 21 s = assertion_value.replace('\\', r'\5c') 22 s = s.replace(r'*', r'\2a') 23 s = s.replace(r'(', r'\28') 24 s = s.replace(r')', r'\29') 25 s = s.replace('\x00', r'\00') 26 return s 27 28 29def filter_format(filter_template,assertion_values): 30 """ 31 filter_template 32 String containing %s as placeholder for assertion values. 33 assertion_values 34 List or tuple of assertion values. Length must match 35 count of %s in filter_template. 36 """ 37 return filter_template % (tuple(map(escape_filter_chars,assertion_values))) 38