UNPKG

1.71 kBJavaScriptView Raw
1function getUser(client, baseDn, opts) {
2 return new Promise((resolve, reject) => {
3 // find the user
4 client.search(baseDn, opts, (err, search) => {
5 if (err) {
6 console.log(err)
7 reject(err)
8 }
9 search.on('searchEntry', (entry) => {
10 resolve(entry.object)
11 })
12 search.on('end', (result) => {
13 // console.log('search.on end result = ', result)
14 // resolve()
15 // client.unbind()
16 })
17 })
18 })
19}
20
21function applyChanges(client, baseDn, opts, changes) {
22 return new Promise((resolve, reject) => {
23 // find the user and modify their password
24 client.search(baseDn, opts, (err, search) => {
25 if (err) {
26 console.log(err)
27 reject(err)
28 }
29 search.on('searchEntry', (entry) => {
30 var user = entry.object
31 client.modify(user.dn, changes, (err) => {
32 if (err) {
33 // failed to change password
34 console.log(err.code)
35 console.log(err.name)
36 console.log(err.message)
37 reject(err)
38 }
39 else {
40 resolve(user)
41 }
42 })
43 })
44 search.on('end', (result) => {
45 // console.log('search.on end result = ', result)
46 // resolve()
47 // client.unbind()
48 })
49 })
50 })
51}
52
53function findByUsernameOptions(username) {
54 return {
55 filter: '(sAMAccountName=' + username + ')',
56 scope: 'sub',
57 attributes: ['objectGUID']
58 }
59}
60
61function findByUpnOptions(upn) {
62 return {
63 filter: '(userPrincipalName=' + upn + ')',
64 scope: 'sub',
65 attributes: ['objectGUID']
66 }
67}
68
69module.exports = {
70 getUser,
71 applyChanges,
72 findByUsernameOptions,
73 findByUpnOptions
74}