Skip to content

Commit d3c06bc

Browse files
sambrightmanencukou
authored andcommitted
Allow uri and base to be taken from system/user LDAP configuration
1 parent 9a74c29 commit d3c06bc

File tree

8 files changed

+25
-24
lines changed

8 files changed

+25
-24
lines changed

Lib/ldap/asyncsearch.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -51,9 +51,9 @@ def __init__(self,l):
5151

5252
def startSearch(
5353
self,
54-
searchRoot,
55-
searchScope,
56-
filterStr,
54+
searchRoot=None,
55+
searchScope=None,
56+
filterStr=None,
5757
attrList=None,
5858
attrsOnly=0,
5959
timeout=-1,

Lib/ldap/controls/openldap.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ class SearchNoOpMixIn:
5151
for easily using the no-op search control.
5252
"""
5353

54-
def noop_search_st(self,base,scope=ldap.SCOPE_SUBTREE,filterstr='(objectClass=*)',timeout=-1):
54+
def noop_search_st(self,base=None,scope=ldap.SCOPE_SUBTREE,filterstr='(objectClass=*)',timeout=-1):
5555
try:
5656
msg_id = self.search_ext(
5757
base,

Lib/ldap/functions.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,10 +65,11 @@ def _ldap_function_call(lock,func,*args,**kwargs):
6565
return result
6666

6767

68-
def initialize(uri,trace_level=0,trace_file=sys.stdout,trace_stack_limit=None, bytes_mode=None):
68+
def initialize(uri=None,trace_level=0,trace_file=sys.stdout,trace_stack_limit=None, bytes_mode=None):
6969
"""
7070
Return LDAPObject instance by opening LDAP connection to
71-
LDAP host specified by LDAP URL
71+
LDAP host specified by LDAP URL. If uri is None, use the value
72+
from ldap.conf/.ldaprc.
7273
7374
Parameters:
7475
uri

Lib/ldap/ldapobject.py

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ class SimpleLDAPObject:
9292
}
9393

9494
def __init__(
95-
self,uri,
95+
self,uri=None,
9696
trace_level=0,trace_file=None,trace_stack_limit=5,bytes_mode=None,
9797
bytes_strictness=None,
9898
):
@@ -769,13 +769,13 @@ def result4(self,msgid=ldap.RES_ANY,all=1,timeout=None,add_ctrls=0,add_intermedi
769769
resp_data = self._bytesify_results(resp_data, with_ctrls=add_ctrls)
770770
return resp_type, resp_data, resp_msgid, decoded_resp_ctrls, resp_name, resp_value
771771

772-
def search_ext(self,base,scope,filterstr=None,attrlist=None,attrsonly=0,serverctrls=None,clientctrls=None,timeout=-1,sizelimit=0):
772+
def search_ext(self,base=None,scope=ldap.SCOPE_SUBTREE,filterstr=None,attrlist=None,attrsonly=0,serverctrls=None,clientctrls=None,timeout=-1,sizelimit=0):
773773
"""
774-
search(base, scope [,filterstr='(objectClass=*)' [,attrlist=None [,attrsonly=0]]]) -> int
775-
search_s(base, scope [,filterstr='(objectClass=*)' [,attrlist=None [,attrsonly=0]]])
776-
search_st(base, scope [,filterstr='(objectClass=*)' [,attrlist=None [,attrsonly=0 [,timeout=-1]]]])
777-
search_ext(base,scope,[,filterstr='(objectClass=*)' [,attrlist=None [,attrsonly=0 [,serverctrls=None [,clientctrls=None [,timeout=-1 [,sizelimit=0]]]]]]])
778-
search_ext_s(base,scope,[,filterstr='(objectClass=*)' [,attrlist=None [,attrsonly=0 [,serverctrls=None [,clientctrls=None [,timeout=-1 [,sizelimit=0]]]]]]])
774+
search([base=None, [scope=ldap.SCOPE_SUBTREE, [,filterstr='(objectClass=*)' [,attrlist=None [,attrsonly=0]]]]]) -> int
775+
search_s([base=None, [scope=ldap.SCOPE_SUBTREE, [,filterstr='(objectClass=*)' [,attrlist=None [,attrsonly=0]]]]])
776+
search_st([base=None, [scope=ldap.SCOPE_SUBTREE, [,filterstr='(objectClass=*)' [,attrlist=None [,attrsonly=0 [,timeout=-1]]]]]])
777+
search_ext([base=None, [scope=ldap.SCOPE_SUBTREE, [,filterstr='(objectClass=*)' [,attrlist=None [,attrsonly=0 [,serverctrls=None [,clientctrls=None [,timeout=-1 [,sizelimit=0]]]]]]]]])
778+
search_ext_s([base=None, [scope=ldap.SCOPE_SUBTREE, [,filterstr='(objectClass=*)' [,attrlist=None [,attrsonly=0 [,serverctrls=None [,clientctrls=None [,timeout=-1 [,sizelimit=0]]]]]]]]])
779779
780780
Perform an LDAP search operation, with base as the DN of
781781
the entry at which to start the search, scope being one of
@@ -841,17 +841,17 @@ def search_ext(self,base,scope,filterstr=None,attrlist=None,attrsonly=0,serverct
841841
timeout,sizelimit,
842842
)
843843

844-
def search_ext_s(self,base,scope,filterstr=None,attrlist=None,attrsonly=0,serverctrls=None,clientctrls=None,timeout=-1,sizelimit=0):
844+
def search_ext_s(self,base=None,scope=ldap.SCOPE_SUBTREE,filterstr=None,attrlist=None,attrsonly=0,serverctrls=None,clientctrls=None,timeout=-1,sizelimit=0):
845845
msgid = self.search_ext(base,scope,filterstr,attrlist,attrsonly,serverctrls,clientctrls,timeout,sizelimit)
846846
return self.result(msgid,all=1,timeout=timeout)[1]
847847

848-
def search(self,base,scope,filterstr=None,attrlist=None,attrsonly=0):
848+
def search(self,base=None,scope=ldap.SCOPE_SUBTREE,filterstr=None,attrlist=None,attrsonly=0):
849849
return self.search_ext(base,scope,filterstr,attrlist,attrsonly,None,None)
850850

851-
def search_s(self,base,scope,filterstr=None,attrlist=None,attrsonly=0):
851+
def search_s(self,base=None,scope=ldap.SCOPE_SUBTREE,filterstr=None,attrlist=None,attrsonly=0):
852852
return self.search_ext_s(base,scope,filterstr,attrlist,attrsonly,None,None,timeout=self.timeout)
853853

854-
def search_st(self,base,scope,filterstr=None,attrlist=None,attrsonly=0,timeout=-1):
854+
def search_st(self,base=None,scope=ldap.SCOPE_SUBTREE,filterstr=None,attrlist=None,attrsonly=0,timeout=-1):
855855
return self.search_ext_s(base,scope,filterstr,attrlist,attrsonly,None,None,timeout)
856856

857857
def start_tls_s(self):
@@ -962,7 +962,7 @@ def search_subschemasubentry_s(self,dn=None):
962962
except IndexError:
963963
return None
964964

965-
def read_s(self,dn,filterstr=None,attrlist=None,serverctrls=None,clientctrls=None,timeout=-1):
965+
def read_s(self,dn=None,filterstr=None,attrlist=None,serverctrls=None,clientctrls=None,timeout=-1):
966966
"""
967967
Reads and returns a single entry specified by `dn'.
968968
@@ -1005,7 +1005,7 @@ def read_subschemasubentry_s(self,subschemasubentry_dn,attrs=None):
10051005
else:
10061006
return subschemasubentry
10071007

1008-
def find_unique_entry(self,base,scope=ldap.SCOPE_SUBTREE,filterstr=None,attrlist=None,attrsonly=0,serverctrls=None,clientctrls=None,timeout=-1):
1008+
def find_unique_entry(self,base=None,scope=ldap.SCOPE_SUBTREE,filterstr=None,attrlist=None,attrsonly=0,serverctrls=None,clientctrls=None,timeout=-1):
10091009
"""
10101010
Returns a unique entry, raises exception if not unique
10111011
"""
@@ -1077,7 +1077,7 @@ class ReconnectLDAPObject(SimpleLDAPObject):
10771077
}
10781078

10791079
def __init__(
1080-
self,uri,
1080+
self,uri=None,
10811081
trace_level=0,trace_file=None,trace_stack_limit=5,bytes_mode=None,
10821082
bytes_strictness=None, retry_max=1, retry_delay=60.0
10831083
):

Lib/ldap/syncrepl.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -349,7 +349,7 @@ class SyncreplConsumer:
349349
SyncreplConsumer - LDAP syncrepl consumer object.
350350
"""
351351

352-
def syncrepl_search(self, base, scope, mode='refreshOnly', cookie=None, **search_args):
352+
def syncrepl_search(self, base=None, scope=None, mode='refreshOnly', cookie=None, **search_args):
353353
"""
354354
Starts syncrepl search operation.
355355

Modules/LDAPObject.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1250,7 +1250,7 @@ l_ldap_search_ext(LDAPObject *self, PyObject *args)
12501250
int msgid;
12511251
int ldaperror;
12521252

1253-
if (!PyArg_ParseTuple(args, "sis|OiOOdi:search_ext",
1253+
if (!PyArg_ParseTuple(args, "zis|OiOOdi:search_ext",
12541254
&base, &scope, &filter, &attrlist, &attrsonly,
12551255
&serverctrls, &clientctrls, &timeout, &sizelimit))
12561256
return NULL;

Modules/functions.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ l_ldap_initialize(PyObject *unused, PyObject *args)
1616
LDAP *ld = NULL;
1717
int ret;
1818

19-
if (!PyArg_ParseTuple(args, "s:initialize", &uri))
19+
if (!PyArg_ParseTuple(args, "z:initialize", &uri))
2020
return NULL;
2121

2222
Py_BEGIN_ALLOW_THREADS ret = ldap_initialize(&ld, uri);

Tests/t_ldapobject.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ def test_reject_bytes_base(self):
117117
elif sys.version_info >= (3, 5, 0):
118118
# Python 3.4.x does not include 'search_ext()' in message
119119
self.assertEqual(
120-
"search_ext() argument 1 must be str, not bytes",
120+
"search_ext() argument 1 must be str or None, not bytes",
121121
text_type(e.exception)
122122
)
123123

0 commit comments

Comments
 (0)