Bug 17615 - Fix updating borrower attributes in checkpw_ldap
authorAlex Arnaud <alex.arnaud@biblibre.com>
Wed, 16 Nov 2016 10:37:48 +0000 (10:37 +0000)
committerKyle M Hall <kyle@bywatersolutions.com>
Fri, 20 Jan 2017 13:37:33 +0000 (13:37 +0000)
Signed-off-by: Oliver Bock <oliver.bock@aei.mpg.de>

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>

C4/Auth_with_ldap.pm
t/db_dependent/Auth_with_ldap.t

index 03e81e1..a58f4e6 100644 (file)
@@ -222,7 +222,7 @@ sub checkpw_ldap {
                 next;
             }
             if (C4::Members::Attributes::CheckUniqueness($code, $borrower{$code}, $borrowernumber)) {
-                C4::Members::Attributes::UpdateBorrowerAttribute($borrowernumber, {code => $code, value => $borrower{$code}});
+                C4::Members::Attributes::UpdateBorrowerAttribute($borrowernumber, {code => $code, attribute => $borrower{$code}});
             } else {
                 warn "ERROR_extended_unique_id_failed $code $borrower{$code}";
             }
index 446982c..aa80901 100755 (executable)
@@ -27,8 +27,12 @@ use C4::Context;
 
 use Koha::Patrons;
 
-my $schema = Koha::Database->new->schema;
-$schema->storage->txn_begin;
+my $dbh = '';
+
+# Start transaction
+my $database = Koha::Database->new();
+my $schema = $database->schema();
+$schema->storage->txn_begin();
 
 my $builder = t::lib::TestBuilder->new();
 
@@ -80,6 +84,14 @@ my $attr_type    = $builder->build(
         }
     }
 );
+my $attr_type2    = $builder->build(
+    {
+        source => 'BorrowerAttributeType',
+        value  => {
+            category_code => $categorycode
+        }
+    }
+);
 
 my $borrower = $builder->build(
     {
@@ -131,7 +143,7 @@ subtest 'checkpw_ldap tests' => sub {
 
     subtest 'auth_by_bind = 1 tests' => sub {
 
-        plan tests => 8;
+        plan tests => 9;
 
         $auth_by_bind = 1;
 
@@ -165,6 +177,14 @@ subtest 'checkpw_ldap tests' => sub {
                 return $borrower->{cardnumber};
             }
         );
+        $auth->mock(
+            'ldap_entry_2_hash',
+            sub {
+                return (
+                    $attr_type2->{code}, 'BAR'
+                );
+            }
+        );
 
         C4::Auth_with_ldap::checkpw_ldap( $dbh, 'hola', password => 'hey' );
         ok(
@@ -175,7 +195,10 @@ subtest 'checkpw_ldap tests' => sub {
             },
             'Extended attributes are not deleted'
         );
+
+        is( C4::Members::Attributes::GetBorrowerAttributeValue($borrower->{borrowernumber}, $attr_type2->{code}), 'BAR', 'Mapped attribute is BAR' );
         $auth->unmock('update_local');
+        $auth->unmock('ldap_entry_2_hash');
 
         $update               = 0;
         $desired_count_result = 0;    # user auth problem
@@ -506,6 +529,6 @@ sub reload_ldap_module {
     return;
 }
 
-$schema->storage->txn_rollback;
+$schema->storage->txn_rollback();
 
 1;