-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathldap-client.php
More file actions
71 lines (65 loc) · 1.77 KB
/
ldap-client.php
File metadata and controls
71 lines (65 loc) · 1.77 KB
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
<?php
require __DIR__ . '/../vendor/autoload.php';
$loop = React\EventLoop\Factory::create();
$loop->addTimer(7, function () use ($loop) {
$loop->stop();
});
$client = new Fneufneu\React\Ldap\Client($loop, 'ldap://blabla.com');
$client->on('data', function ($data) {
echo "data received: ".var_export($data, true).PHP_EOL;
});
$client->on('error', function ($e) use ($loop) {
echo "cmd failed: ".$e->getMessage().PHP_EOL;
$loop->stop();
});
$client->on('end', function () use ($loop) {
echo "client end".PHP_EOL;
$loop->stop();
});
$client->bind('blabla', 'blabla75')->then(function ($client) {
echo "binded\n";
$results = $client->search([
'base' => "cn=blabla",
'filter' => "(&(uid=*)(mail=y*))",
'attributes' => ['uid', 'cn', 'mail'],
]);
$results2 = $client->search([
'base' => "cn=blabla",
'filter' => "(&(uid=*)(mail=m*))",
'attributes' => ['uid', 'cn', 'mail'],
]);
$results3 = $client->search([
'base' => "cn=blabla",
'filter' => "(&(uid=*)(mail=a*))",
'attributes' => ['uid', 'cn', 'mail'],
]);
$print_data = function ($data) {
echo json_encode($data) . PHP_EOL;
};
$print_end = function () {
printf('end'.PHP_EOL);
};
$print_close = function () {
printf('close'.PHP_EOL);
};
$print_error = function ($e) {
echo 'error: '.$e->getMessage().PHP_EOL;
};
$results->on('data', $print_data)
->on('end', $print_end)
->on('close', $print_close)
->on('error', $print_error);
$results2->on('data', $print_data)
->on('end', $print_end)
->on('close', $print_close)
->on('error', $print_error);
$results3->on('data', $print_data)
->on('end', $print_end)
->on('close', $print_close)
->on('error', $print_error);
$client->unbind();
}, function ($e) use ($loop) {
echo "bind failed: ".$e->getMessage().PHP_EOL;
$loop->stop();
});
$loop->run();