From 0608506d052eb239860017cfe5686405634364d4 Mon Sep 17 00:00:00 2001 From: Kyle Hall Date: Thu, 3 Mar 2022 14:24:11 -0500 Subject: [PATCH] Bug 30199: self checkout login by cardnumber is broken if you input a non-existent cardnumber Test Plan: 1. Set SelfCheckoutByLogin to 'cardnumber'. 2. Go to http://localhost:8080/cgi-bin/koha/sco/sco-main.pl 3. Enter an invalid carnumber like 'thisisabadcardnumber' 4. See the appropriate message "Sorry The userid thisisabadcardnumber was not found in the database. Please try again." 5. Try again with a different cardnumber and notice the same exact error message including the 'thisisabadcardnumber' cardnumber. 6. Apply this patch 7. Restart all the things! 8. Repeat steps 2-4 9. Try again with a different cardnumber, you should now see the correct cardnumber! --- opac/sco/sco-main.pl | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/opac/sco/sco-main.pl b/opac/sco/sco-main.pl index 7e056fa34e..cbd29235b2 100755 --- a/opac/sco/sco-main.pl +++ b/opac/sco/sco-main.pl @@ -116,6 +116,12 @@ my $issuenoconfirm = 1; #don't need to confirm on issue. my $issuer = Koha::Patrons->find( $issuerid )->unblessed; my $patronid = $jwt ? Koha::Token->new->decode_jwt({ token => $jwt }) : undef; + +# A new patronid has been submitted for login +if ( $patronid ne $query->param('patronid') ) { + $patronid = undef; +} + unless ( $patronid ) { if ( C4::Context->preference('SelfCheckoutByLogin') ) { my $dbh = C4::Context->dbh; -- 2.30.2