equal
deleted
inserted
replaced
230 res = self._search(session, extid, BASE) |
230 res = self._search(session, extid, BASE) |
231 self.debug('ldap search %s', res) |
231 self.debug('ldap search %s', res) |
232 if res: |
232 if res: |
233 ldapemailaddr = res[0].get(ldap_emailattr) |
233 ldapemailaddr = res[0].get(ldap_emailattr) |
234 if ldapemailaddr: |
234 if ldapemailaddr: |
|
235 if isinstance(ldapemailaddr, list): |
|
236 ldapemailaddr = ldapemailaddr[0] # XXX consider only the first email in the list |
235 rset = execute('Any X,A WHERE ' |
237 rset = execute('Any X,A WHERE ' |
236 'X address A, U use_email X, U eid %(u)s', |
238 'X address A, U use_email X, U eid %(u)s', |
237 {'u': eid}) |
239 {'u': eid}) |
238 ldapemailaddr = unicode(ldapemailaddr) |
240 ldapemailaddr = unicode(ldapemailaddr) |
239 for emaileid, emailaddr, in rset: |
241 for emaileid, emailaddr, in rset: |
520 if eid: |
522 if eid: |
521 self.warning('deleting ldap user with eid %s and dn %s', |
523 self.warning('deleting ldap user with eid %s and dn %s', |
522 eid, base) |
524 eid, base) |
523 entity = session.entity_from_eid(eid, 'CWUser') |
525 entity = session.entity_from_eid(eid, 'CWUser') |
524 self.repo.delete_info(session, entity, self.uri, base) |
526 self.repo.delete_info(session, entity, self.uri, base) |
525 self.reset_cache() |
527 self.reset_caches() |
526 return [] |
528 return [] |
527 # except ldap.REFERRAL, e: |
529 # except ldap.REFERRAL, e: |
528 # cnx = self.handle_referral(e) |
530 # cnx = self.handle_referral(e) |
529 # try: |
531 # try: |
530 # res = cnx.search_s(base, scope, searchstr, attrs) |
532 # res = cnx.search_s(base, scope, searchstr, attrs) |
587 # search for existant email first |
589 # search for existant email first |
588 try: |
590 try: |
589 emailaddr = self._cache[dn][self.user_rev_attrs['email']] |
591 emailaddr = self._cache[dn][self.user_rev_attrs['email']] |
590 except KeyError: |
592 except KeyError: |
591 return |
593 return |
|
594 if isinstance(emailaddr, list): |
|
595 emailaddr = emailaddr[0] # XXX consider only the first email in the list |
592 rset = session.execute('EmailAddress X WHERE X address %(addr)s', |
596 rset = session.execute('EmailAddress X WHERE X address %(addr)s', |
593 {'addr': emailaddr}) |
597 {'addr': emailaddr}) |
594 if rset: |
598 if rset: |
595 session.execute('SET U primary_email X WHERE U eid %(u)s, X eid %(x)s', |
599 session.execute('SET U primary_email X WHERE U eid %(u)s, X eid %(x)s', |
596 {'x': rset[0][0], 'u': entity.eid}) |
600 {'x': rset[0][0], 'u': entity.eid}) |