diff --git a/lib/util/ldaputil.js b/lib/util/ldaputil.js index cb7398d5..1e38c33f 100644 --- a/lib/util/ldaputil.js +++ b/lib/util/ldaputil.js @@ -44,18 +44,27 @@ module.exports.login = function(options, username, password) { function tryFind(client) { var resolver = Promise.defer() - var filter = `&(objectClass=${options.search.objectClass})` + - `(${options.search.field}=${username})` - - if (typeof options.search.filter !== 'undefined') { - filter += `${options.search.filter}` - } - var query = { scope: options.search.scope - , filter: ldap.parseFilter(`(${filter})`) + , filter: new ldap.AndFilter({ + filters: [ + new ldap.EqualityFilter({ + attribute: 'objectClass' + , value: options.search.objectClass + }) + , new ldap.EqualityFilter({ + attribute: options.search.field + , value: username + }) + ] + }) } + if (typeof options.search.filter !== 'undefined') { + var parsedFilter = ldap.parseFilter(options.search.filter) + query.filter.filters.push(parsedFilter) + } + client.search(options.search.dn, query, function(err, search) { if (err) { return resolver.reject(err)