Description :
la méthode checkUnderBase renvoie l'erreur key error :isCanonicalDN(dn). On a constaté que si le dn comporte des espaces le bug se manifeste.
Solution :
on a patché la méthode en formattant le dn
voila le patch :
def adie_checkUnderBase(self, dn):
"""Check that dn is under the base."""
URL=dn
URL=URL.split(" ")
print URL
i=0
URL_Valid=''
for i in range(len(URL)):
URL_Valid+=URL[i]
dn=URL_Valid
if not isCanonicalDN(dn):
raise KeyError("DN '%s' is not canonical" % dn)
if not (','+dn).endswith(','+self.ldap_base):
raise ValueError("DN '%s' must be under base '%s'" %
(dn, self.ldap_base))
from Products.CPSDirectory import LDAPBackingDirectory
LDAPBackingDirectory.checkUnderBase = adie_checkUnderBase