def _search_user(self, username): """ Search user from the LDAP directory .. NOTE:: Requires LDAP connection """ # Create search filter filter = '(&(objectclass=*)({0}={1}))'.format(self._uid, ldap.filter.escape_filter_chars(username)) # Search user from search domain, attributes = None means all attributes data = None try: data = self._connection.search_s(self._base_dn, ldap.SCOPE_SUBTREE, filter, None) except: conf.log.exception('Invalid LDAP search!') return None # Use ldaphelper.get_search_results to create nice results results = get_search_results(data) # If less than one results => no results # If more than one results => can't decide which is right if len(results) == 1: return results[0] else: return None
def _search_users_in_group(self, groupname): """ Search users in a group from the LDAP directory .. NOTE:: Requires LDAP connection """ # Create search filter filter = '(%s=%s)' % (self._group_cn, ldap.filter.escape_filter_chars(groupname)) # Search user from search domain, attributes = None means all attributes data = None try: data = self._connection.search_s(self._group_dn, ldap.SCOPE_SUBTREE, filter, None) except: conf.log.exception('Invalid LDAP search') return None # Use ldaphelper.get_search_results to create nice results return get_search_results(data)