diff --git a/gestioncof/autocomplete.py b/gestioncof/autocomplete.py index a9abbad7..7a9c37d2 100644 --- a/gestioncof/autocomplete.py +++ b/gestioncof/autocomplete.py @@ -14,6 +14,10 @@ from gestioncof.decorators import buro_required class Clipper(object): def __init__(self, clipper, fullname): + if fullname is None: + fullname = "" + assert isinstance(clipper, str) + assert isinstance(fullname, str) self.clipper = clipper self.fullname = fullname @@ -62,17 +66,19 @@ def autocomplete(request): )) if ldap_query != "(&)": # If none of the bits were legal, we do not perform the query + entries = None with Connection(settings.LDAP_SERVER_URL) as conn: conn.search( 'dc=spi,dc=ens,dc=fr', ldap_query, attributes=['uid', 'cn'] ) - queries['clippers'] = conn.entries + entries = conn.entries # Clearing redundancies queries['clippers'] = [ - Clipper(clipper.uid, clipper.cn) - for clipper in queries['clippers'] - if str(clipper.uid) not in usernames + Clipper(entry.uid.value, entry.cn.value) + for entry in entries + if entry.uid.value is not None + and entry.uid.value not in usernames ] # Resulting data diff --git a/kfet/autocomplete.py b/kfet/autocomplete.py index bee99517..0ab2c8aa 100644 --- a/kfet/autocomplete.py +++ b/kfet/autocomplete.py @@ -13,6 +13,10 @@ from kfet.models import Account class Clipper(object): def __init__(self, clipper, fullname): + if fullname is None: + fullname = "" + assert isinstance(clipper, str) + assert isinstance(fullname, str) self.clipper = clipper self.fullname = fullname @@ -80,17 +84,19 @@ def account_create(request): )) if ldap_query != "(&)": # If none of the bits were legal, we do not perform the query + entries = None with Connection(settings.LDAP_SERVER_URL) as conn: conn.search( 'dc=spi,dc=ens,dc=fr', ldap_query, attributes=['uid', 'cn'] ) - queries['clippers'] = conn.entries + entries = conn.entries # Clearing redundancies queries['clippers'] = [ - Clipper(clipper.uid, clipper.cn) - for clipper in queries['clippers'] - if str(clipper.uid) not in usernames + Clipper(entry.uid.value, entry.cn.value) + for entry in entries + if entry.uid.value is not None + and entry.uid.value not in usernames ] # Resulting data