Skip to content
Snippets Groups Projects
Unverified Commit 353ecf13 authored by JM Lopez Lujan's avatar JM Lopez Lujan
Browse files

get_object_details to take query_filter and fallback

 to LDAP_USER_OBJECT_FILTER or LDAP_GROUP_OBJECT_FILTER
fixes #58
parent c0554780
No related branches found
No related tags found
No related merge requests found
......@@ -155,11 +155,13 @@ class LDAP(object):
except ldap.LDAPError:
return
def get_object_details(self, user=None, group=None, dn_only=False):
def get_object_details(self, user=None, group=None, query_filter=None,
dn_only=False):
"""Returns a ``dict`` with the object's (user or group) details.
:param str user: Username of the user object you want details for.
:param str group: Name of the group object you want details for.
:param str query_filter: If included, will be used to query object.
:param bool dn_only: If we should only retrieve the object's
distinguished name or not. Default: ``False``.
"""
......@@ -169,13 +171,15 @@ class LDAP(object):
if user is not None:
if not dn_only:
fields = current_app.config['LDAP_USER_FIELDS']
query = ldap_filter.filter_format(
current_app.config['LDAP_USER_OBJECT_FILTER'], (user,))
query_filter = query_filter or \
current_app.config['LDAP_USER_OBJECT_FILTER']
query = ldap_filter.filter_format(query_filter, (user,))
elif group is not None:
if not dn_only:
fields = current_app.config['LDAP_GROUP_FIELDS']
query = ldap_filter.filter_format(
current_app.config['LDAP_GROUP_OBJECT_FILTER'], (group,))
query_filter = query_filter or \
current_app.config['LDAP_GROUP_OBJECT_FILTER']
query = ldap_filter.filter_format(query_filter, (group,))
conn = self.bind
try:
records = conn.search_s(current_app.config['LDAP_BASE_DN'],
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment