comparison mod_lib_ldap/ldap.lib.lua @ 870:13e645340767

Use singlematch to find user record in ldap.bind
author Rob Hoelz <rob@hoelz.ro>
date Mon, 10 Dec 2012 22:15:27 +0100
parents ec791fd8ce87
children e4a03e58f896
comparison
equal deleted inserted replaced
869:ec791fd8ce87 870:13e645340767
177 177
178 -- XXX consider renaming this...it doesn't bind the current connection 178 -- XXX consider renaming this...it doesn't bind the current connection
179 function _M.bind(username, password) 179 function _M.bind(username, password)
180 local conn = _M.getconnection(); 180 local conn = _M.getconnection();
181 local filter = format('%s=%s', params.user.usernamefield, username); 181 local filter = format('%s=%s', params.user.usernamefield, username);
182 local search_attrs = { 182 local who = _M.singlematch {
183 attrs = params.user.usernamefield, 183 attrs = params.user.usernamefield,
184 base = params.user.basedn, 184 base = params.user.basedn,
185 scope = 'subtree',
186 sizelimit = 1,
187 filter = filter, 185 filter = filter,
188 }; 186 };
189 local who; 187
190 188 if who then
191 for dn in conn:search(search_attrs) do 189 who = who.dn;
192 module:log('debug', '_M.bind - who: %s', dn); 190 module:log('debug', '_M.bind - who: %s', who);
193 who = dn;
194 end 191 end
195 192
196 local conn, err = ldap.open_simple(params.hostname, who, password, params.use_tls); 193 local conn, err = ldap.open_simple(params.hostname, who, password, params.use_tls);
197 194
198 if conn then 195 if conn then