equal
deleted
inserted
replaced
18 """cubicweb ldap feed source""" |
18 """cubicweb ldap feed source""" |
19 |
19 |
20 from __future__ import division # XXX why? |
20 from __future__ import division # XXX why? |
21 |
21 |
22 from datetime import datetime |
22 from datetime import datetime |
|
23 |
|
24 from six import string_types |
23 |
25 |
24 import ldap |
26 import ldap |
25 from ldap.ldapobject import ReconnectLDAPObject |
27 from ldap.ldapobject import ReconnectLDAPObject |
26 from ldap.filter import filter_format |
28 from ldap.filter import filter_format |
27 from ldapurl import LDAPUrl |
29 from ldapurl import LDAPUrl |
374 itemdict[key] = value = value[0] |
376 itemdict[key] = value = value[0] |
375 else: |
377 else: |
376 itemdict[key] = value |
378 itemdict[key] = value |
377 # we expect memberUid to be a list of user ids, make sure of it |
379 # we expect memberUid to be a list of user ids, make sure of it |
378 member = self.group_rev_attrs['member'] |
380 member = self.group_rev_attrs['member'] |
379 if isinstance(itemdict.get(member), basestring): |
381 if isinstance(itemdict.get(member), string_types): |
380 itemdict[member] = [itemdict[member]] |
382 itemdict[member] = [itemdict[member]] |
381 return itemdict |
383 return itemdict |
382 |
384 |
383 def _process_no_such_object(self, cnx, dn): |
385 def _process_no_such_object(self, cnx, dn): |
384 """Some search return NO_SUCH_OBJECT error, handle this (usually because |
386 """Some search return NO_SUCH_OBJECT error, handle this (usually because |