[Koha-patches] [PATCH] BugFix 2726 Resending

Henri-Damien LAURENT henridamien.laurent at biblibre.com
Tue Sep 15 21:41:38 CEST 2009


This bugfix was first sent By Michael Hafen but may not have made its way into LDAP Authentication
---
 C4/Auth_with_ldap.pm |   16 ++++++----------
 1 files changed, 6 insertions(+), 10 deletions(-)

diff --git a/C4/Auth_with_ldap.pm b/C4/Auth_with_ldap.pm
index 08a4353..42ba348 100644
--- a/C4/Auth_with_ldap.pm
+++ b/C4/Auth_with_ldap.pm
@@ -107,21 +107,17 @@ sub checkpw_ldap {
     my $db = Net::LDAP->new(\@hosts);
 	#$debug and $db->debug(5);
     my $userldapentry;
+    my $search = search_method($db, $userid) or return 0;   # warnings are in the sub
+    $userldapentry = $search->shift_entry;
 	if ( $ldap->{auth_by_bind} ) {
-        my $principal_name = $ldap->{principal_name};
-        if ($principal_name and $principal_name =~ /\%/) {
-            $principal_name = sprintf($principal_name,$userid);
-        } else {
-            $principal_name = $userid;
-        }
-		my $res = $db->bind( $principal_name, password => $password );
+		my $userldapname=$userldapentry->dn();
+    	my $userdb = Net::LDAP->new(\@hosts);
+		my $res = $userdb->bind( $userldapname, password => $password );
         if ( $res->code ) {
-            $debug and warn "LDAP bind failed as kohauser $principal_name: ". description($res);
+            $debug and warn "LDAP bind failed as kohauser $userldapname: ". description($res);
             return 0;
         }
 	} else {
-        my $search = search_method($db, $userid) or return 0;   # warnings are in the sub
-        $userldapentry = $search->shift_entry;
 		my $cmpmesg = $db->compare( $userldapentry, attr=>'userpassword', value => $password );
 		if ($cmpmesg->code != 6) {
 			warn "LDAP Auth rejected : invalid password for user '$userid'. " . description($cmpmesg);
-- 
1.6.0.4






More information about the Koha-patches mailing list