Пример #1
0
    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
Пример #2
0
    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)