a433d01be03969f211c4e0314f29579653e30e22
[ga4php.git] / example / adsearchtest / usersearch.php
1 <?php 
2 if($argc < 4) {
3         echo "usage: ".$argv[0]. " domain user password usertocheck\n";
4         return 0;
5 }
6
7 $addom = $argv[1];
8 $adlogin = $argv[2];
9 $adpass = $argv[3];
10 $usertocheck = $argv[4];
11
12 $servers = dns_get_record("_gc._tcp.$addom");
13 if(count($servers)<1) {
14         echo "AD servers cant be found, fail!\n";
15 }
16
17 echo count($servers)." AD servers returned, using ".$servers[0]["target"]."\n";
18
19 // we should check all servers, but lets just go with 0 for now
20 $cnt = ldap_connect($servers[0]["target"], $servers[0]["port"]);
21 echo "Connected\n";
22 $bind = ldap_bind($cnt, "$adlogin", "$adpass");
23 if($bind) {
24         echo "Bind passed\n";
25 } else {
26         echo "Bind Failed\n";
27 }
28
29 $ars = explode(".", $addom);
30
31 $tcn = "";
32 foreach($ars as $val) {
33         $tcn .= "DC=$val,";
34 }
35
36 $basecn = preg_replace("/,$/", "", $tcn);
37
38 // first, find the dn for our user
39 $sr = ldap_search($cnt, "$basecn", "(&(objectclass=user)(samaccountname=$usertocheck))");
40 $info = ldap_get_entries($cnt, $sr);
41 //print_r($info);
42 $usercn=$info[0]["dn"];
43
44
45 //exit(0);
46
47 $basecn = preg_replace("/,$/", "", $tcn);
48 $sr = ldap_search($cnt, "$basecn", "(&(objectCategory=group)(member:1.2.840.113556.1.4.1941:=$usercn))");
49 $fil = "(&(objectCategory=group)(member:1.2.840.113556.1.4.1941:=$usercn))";
50 $info = ldap_get_entries($cnt, $sr);
51 echo "groups for this user, $fil\n";
52 //print_r($info);
53 foreach($info as $kpot => $lpot) {
54         //print_r($kpot);
55         //print_r($lpot);
56         if(isset($lpot["cn"])) {
57                 echo "Group: ".$lpot["cn"][0]."\n";
58         }
59         //echo "User: ".$kpot["samaaccountname"][0]."\n";
60         //echo "$kpot, $lpot\n";
61         //return 0;
62 }
63
64
65
66
67 ?>