Bug 18880: [QA Follow-up] Finishing touch
authorMarcel de Rooy <m.de.rooy@rijksmuseum.nl>
Fri, 14 Jul 2017 06:07:31 +0000 (08:07 +0200)
committerJonathan Druart <jonathan.druart@bugs.koha-community.org>
Fri, 14 Jul 2017 15:05:31 +0000 (12:05 -0300)
Do not fill @return if retval == -1 for LDAP (see cfc484b17).
No need to call store after an DBIx update. Rearranged the if statement.

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
C4/Auth.pm

index e6acda9..d22e935 100644 (file)
@@ -1776,10 +1776,10 @@ sub checkpw {
     } elsif ($ldap) {
         $debug and print STDERR "## checkpw - checking LDAP\n";
         my ( $retval, $retcard, $retuserid ) = checkpw_ldap(@_);    # EXTERNAL AUTH
-        if ( $retval ) {
+        if ( $retval == 1 ) {
             @return = ( $retval, $retcard, $retuserid );
+            $passwd_ok = 1;
         }
-        $passwd_ok = 1 if $retval == 1;
         $check_internal_as_fallback = 1 if $retval == 0;
 
     } elsif ( $cas && $query && $query->param('ticket') ) {
@@ -1824,12 +1824,12 @@ sub checkpw {
         $passwd_ok = 1 if $return[0] > 0; # 1 or 2
     }
 
-    unless ( $passwd_ok ) { # Auth failed
-        $patron->update({ login_attempts => $patron->login_attempts + 1 }) if $patron;
-    } elsif ( $patron ) {
-        # FIXME Koha::Object->update should return a Koha::Object to allow chaining
-        $patron->update({ login_attempts => 0 });
-        $patron->store;
+    if( $patron ) {
+        if ( $passwd_ok ) {
+            $patron->update({ login_attempts => 0 });
+        } else {
+            $patron->update({ login_attempts => $patron->login_attempts + 1 });
+        }
     }
     return @return;
 }