mirror of
https://github.com/openstf/stf
synced 2025-10-05 10:39:25 +02:00
consider OrFilter
This commit is contained in:
parent
b8388c75b3
commit
0ea54678f0
1 changed files with 7 additions and 22 deletions
|
@ -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)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue