1 | function getUser(client, baseDn, opts) {
|
2 | return new Promise((resolve, reject) => {
|
3 |
|
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 |
|
14 |
|
15 |
|
16 | })
|
17 | })
|
18 | })
|
19 | }
|
20 |
|
21 | function applyChanges(client, baseDn, opts, changes) {
|
22 | return new Promise((resolve, reject) => {
|
23 |
|
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 |
|
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 |
|
46 |
|
47 |
|
48 | })
|
49 | })
|
50 | })
|
51 | }
|
52 |
|
53 | function findByUsernameOptions(username) {
|
54 | return {
|
55 | filter: '(sAMAccountName=' + username + ')',
|
56 | scope: 'sub',
|
57 | attributes: ['objectGUID']
|
58 | }
|
59 | }
|
60 |
|
61 | function findByUpnOptions(upn) {
|
62 | return {
|
63 | filter: '(userPrincipalName=' + upn + ')',
|
64 | scope: 'sub',
|
65 | attributes: ['objectGUID']
|
66 | }
|
67 | }
|
68 |
|
69 | module.exports = {
|
70 | getUser,
|
71 | applyChanges,
|
72 | findByUsernameOptions,
|
73 | findByUpnOptions
|
74 | }
|