Removed /usr/local from CDPATH
[clearscm.git] / test / testldap.pl
1 #!/usr/bin/env perl
2 use strict;
3 use warnings;
4
5 use Net::LDAP;
6 use Carp;
7
8 sub getUserEmail ($) {
9   my ($userid) = @_;
10   
11   my (@entries, $result);
12
13   my %opts = (
14     KNOWLES_AD_HOST   => '10.252.2.28',
15     KNOWLES_AD_PORT   => 389,
16     KNOWLES_AD_BASEDN => 'DC=knowles,DC=com',
17     KNOWLES_AD_BINDDN => 'CN=AD Reader,OU=Users,OU=KMV,OU=Knowles,DC=knowles,DC=com',
18     KNOWLES_AD_BINDPW => '@Dre@D2015',
19   );
20   
21   my $mailAttribute = 'mail';
22
23   print "Creating new LDAP object for Knowles\n";  
24   my $knowlesLDAP = Net::LDAP->new (
25     $opts{KNOWLES_AD_HOST}, (
26       host   => $opts{KNOWLES_AD_HOST},
27       port   => $opts{KNOWLES_AD_PORT},
28       basedn => $opts{KNOWLES_AD_BASEDN},
29       #binddn => $opts{KNOWLES_AD_BINDDN},
30       #bindpw => $opts{KNOWLES_AD_BINDPW},
31     )
32   ) or croak $@;
33   
34   print "Binding anonymously\n";  
35 #  if ($opts{KNOWLES_AD_BINDDN}) {
36      $result = $knowlesLDAP->bind (
37 #      dn       => $opts{KNOWLES_AD_BINDDN},
38 #      password => $opts{KNOWLES_AD_BINDPW},
39     ) or croak "Unable to bind\n$@";
40
41   croak "Unable to bind (Error " . $result->code . "\n" . $result->error
42     if $result->code;
43   
44   print "Searching for $userid\n";  
45   $result = $knowlesLDAP->search (
46     base   => $opts{KNOWLES_AD_BASEDN},
47     filter => "sAMAccountName=$userid",
48   );
49   
50   print "Getting entries\n";
51   @entries = ($result->entries);
52     
53   if ($entries[0]) {
54     return $entries[0]->get_value ($mailAttribute);
55   } else {
56     return 'Unknown';
57   } # if
58 } # getUserEmail
59
60 print getUserEmail ('adefari');
61 print "\n";