[Koha-cvs] CVS: koha/C4 Auth.pm,1.34,1.35
Paul POULAIN
tipaul at users.sourceforge.net
Thu Sep 2 18:25:23 CEST 2004
Update of /cvsroot/koha/koha/C4
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4916/C4
Modified Files:
Auth.pm
Log Message:
some fixes for LDAP (more to come)
Index: Auth.pm
===================================================================
RCS file: /cvsroot/koha/koha/C4/Auth.pm,v
retrieving revision 1.34
retrieving revision 1.35
diff -C2 -r1.34 -r1.35
*** Auth.pm 16 Jul 2004 21:15:26 -0000 1.34
--- Auth.pm 2 Sep 2004 16:25:20 -0000 1.35
***************
*** 360,366 ****
my $ldapinfos = C4::Context->preferences('ldapinfos');
my %bindargs;
! my $nom = "uid=$userid, $ldapinfos";
my $db = Net::LDAP->new( $ldapserver );
! $bindargs{dn}=$nom;
$bindargs{password}=$password;
my $res =$db->bind(%bindargs);
--- 360,366 ----
my $ldapinfos = C4::Context->preferences('ldapinfos');
my %bindargs;
! my $name = "uid=$userid, $ldapinfos";
my $db = Net::LDAP->new( $ldapserver );
! $bindargs{dn}=$name;
$bindargs{password}=$password;
my $res =$db->bind(%bindargs);
***************
*** 376,379 ****
--- 376,409 ----
#we have the cardnumber
return 1,$cardnumber;
+ } else {
+ # retrieve the LDAP informations & create the user
+ my $borrower = $db->search(base => %bindargs,
+ filter => "(sn=$userid)",
+ );
+ my $href = $borrower->as_struct;
+ # get an array of the DN names
+ my @arrayOfDNs = keys %$href; # use DN hashes
+ # process each DN using it as a key
+ my %borrower;
+ foreach ( @arrayOfDNs ) {
+ print $_, "\n";
+ my $valref = $$href{$_};
+ # get an array of the attribute names
+ # passed for this one DN.
+ my @arrayOfAttrs = sort keys %$valref; #use Attr hashes
+ my $attrName;
+ foreach $attrName (@arrayOfAttrs) {
+ # skip any binary data: yuck!
+ next if ( $attrName =~ /;binary$/ );
+ # get the attribute value (pointer) using the
+ # attribute name as the hash
+ my $attrVal = @$valref{$attrName};
+ print "\t $attrName: @$attrVal \n";
+ $borrower{$attrName}= @$attrVal;
+ }
+ }
+ # create the user in Koha DB
+ newmember(%borrower);
+
}
if ($userid eq C4::Context->config('user') && $password eq C4::Context->config('pass')) {
More information about the Koha-cvs
mailing list