use IO::File;
use Net::LDAP;
use strict; use warnings;
use Data::Dumper;

require "lib_pl";

our $ldap_conf;

our $uid;
our $password;

my %uids;

$uid="ssw";
my $user = ldap_auth({keep_ldap_open=>1}, "XXX") or die "can't auth";
#ldap_dump($user);
my $filter = "";
my @domains;
@domains = ('ou=staff,ou=users,ou=healesville-hs', 'ou=administrators,ou=healesville-hs', 'ou=library,ou=users,ou=healesville-hs');
@domains = ('ou=students,ou=users,ou=healesville-hs');
for my $domain (@domains) {
	my $users = ldap_lookup($domain, $filter, [$ldap_conf->{uid_field}]);
	if (ref $users) {
		for my $user (@$users) {
			my $uid_full = lc $user->get_value($ldap_conf->{uid_field});
			my $uid;
			if (length($uid_full) > 3) {
				$uid = substr($uid_full, 0, 3);
			} else {
				$uid = $uid_full;
			}
			if ($uids{$uid}) {
				die "duplicate uid (first 3 chars): $uid";
			}
			$uids{$uid} = 1;
		}
	} else {
		die "bad: ldap_lookup returned $users";
	}
}
for (sort keys %uids) { print; print "\n"; }
#ldap_lookup("(&($ldap_conf->{uid_field}=ssw) (ou=staff))", ['distinguishedName']);
