diff --git a/lib/util/ldaputil.js b/lib/util/ldaputil.js index e2fe0a35..a23cbd3c 100644 --- a/lib/util/ldaputil.js +++ b/lib/util/ldaputil.js @@ -44,32 +44,17 @@ 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 = `${filter}${options.search.filter}` + } + var query = { scope: options.search.scope - , filter: new ldap.AndFilter({ - filters: [ - new ldap.EqualityFilter({ - attribute: 'objectClass' - , value: options.search.objectClass - }) - , new ldap.EqualityFilter({ - attribute: options.search.field - , value: username - }) - ] - }) + , filter: ldap.parseFilter(`(${filter})`) } - if (options.search.filter !== 'undefined') { - var parsedFilter = ldap.parseFilter(options.search.filter) - if (parsedFilter instanceof ldap.EqualityFilter) { - query.filter.filters.push(parsedFilter) - } - else { - Array.prototype.push.apply(query.filter.filters, parsedFilter.filters) - } - } - client.search(options.search.dn, query, function(err, search) { if (err) { return resolver.reject(err)