Make IPASimpleLDAPObject.get_single_value result overridable.

Add some default overrides.

https://fedorahosted.org/freeipa/ticket/3488
This commit is contained in:
Jan Cholasta 2013-12-10 11:39:38 +01:00 committed by Petr Viktorin
parent c98cff25ab
commit 8d67acc026

View File

@ -246,11 +246,18 @@ class IPASimpleLDAPObject(object):
#
# FWIW, many entries under cn=config are undefined :-(
_SCHEMA_OVERRIDE = CIDict({
_SYNTAX_OVERRIDE = CIDict({
'managedtemplate': DN_SYNTAX_OID, # DN
'managedbase': DN_SYNTAX_OID, # DN
'originscope': DN_SYNTAX_OID, # DN
})
_SINGLE_VALUE_OVERRIDE = CIDict({
'nsslapd-ssl-check-hostname': True,
'nsslapd-lookthroughlimit': True,
'nsslapd-idlistscanlimit': True,
'nsslapd-anonlimitsdn': True,
'nsslapd-minssf-exclude-rootdse': True,
})
def __init__(self, uri, force_schema_updates, no_schema=False,
decode_attrs=True):
@ -327,8 +334,8 @@ class IPASimpleLDAPObject(object):
attr = attr.encode('utf-8')
# Is this a special case attribute?
if attr in self._SCHEMA_OVERRIDE:
return self._SCHEMA_OVERRIDE[attr]
if attr in self._SYNTAX_OVERRIDE:
return self._SYNTAX_OVERRIDE[attr]
if self.schema is None:
return None
@ -361,6 +368,9 @@ class IPASimpleLDAPObject(object):
if isinstance(attr, unicode):
attr = attr.encode('utf-8')
if attr in self._SINGLE_VALUE_OVERRIDE:
return self._SINGLE_VALUE_OVERRIDE[attr]
if self.schema is None:
return None