forked from stefanonepa/epfl-ldap
-
Notifications
You must be signed in to change notification settings - Fork 0
/
ldapjs-promise.js
32 lines (32 loc) · 1.29 KB
/
ldapjs-promise.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
module.exports = function _executeQueryPromise(client, searchBase, opts) {
return new Promise((resolve, reject) => {
client.search(searchBase, opts, function (err, ldapRes) {
let groupedObject = {};
ldapRes.on('searchEntry', function (entry) {
if (typeof entry.json != 'undefined') {
let objectIdentifier = entry.object.uniqueIdentifier;
if (groupedObject[objectIdentifier] === undefined) {
groupedObject[objectIdentifier] = Array();
}
groupedObject[objectIdentifier].push(entry.object);
} else {
resolve(groupedObject);
}
});
ldapRes.on('searchReference', function (referral) {
//console.log('referral: ' + referral.uris.join());
});
ldapRes.on('error', function (err) {
console.error('error: ' + err.message);
reject(err);
});
ldapRes.on('timeout', function (err) {
console.error('error: ' + err.message);
reject(err);
});
ldapRes.on('end', function () {
resolve(groupedObject);
});
});
});
}