UNPKG

activedirectory

Version:

ActiveDirectory is an ldapjs client for authN (authentication) and authZ (authorization) for Microsoft Active Directory with range retrieval support for large Active Directory installations.

28 lines (23 loc) 1.06 kB
var _ = require('../node_modules/underscore'); var config = require('./config').config; var activeDirectory = new (require('../index'))(config); var ad = activeDirectory; var limit = 20; var opts = { filter: '(&(cn=Smith*)(objectcategory=person))', attributes: [ 'dn' ] }; ad.findUsers(opts, function(err, users) { if (err) throw(err); var count = (users || []).length; console.log('Query "' + opts.filter + '" returned ' + count + ' results. Getting results for first ' + limit + ' items.'); var filter = '(|' + _.reduce(users.slice(0, limit), function(memo, user, index) { // Currently a bug in ldapjs that isn't properly escaping DNs with ',' in the name. return(memo + '(distinguishedName=' + user.dn.replace('\\,', '\\\\,') + ')'); }, '') + ')'; console.log('Generated dynamic filter for user details: ' + filter); ad.findUsers({ filter: filter, includeMembership: true }, function(err, users) { if (err) throw(err); console.log((users || []).length + '/' + count + ' users. Users: ' + JSON.stringify(users)); }); });