Bug 13502: Code introcduced in 1861 wrongly assumes a null userid is unique
To test 1/ Create a borrower with '' as their userid, you may have to edit a row in the db to do this 2/ Run perl t/db_dependent/Circulation/CheckIfIssuedToPatron.t 3/ Notice some tests fail and you see DBD::mysql::st execute failed: Duplicate entry '' for key 'userid' at /home/chrisc/git/catalyst-koha/C4/SQLHelper.pm line 184. 4/ Apply the patch 5/ Run the tests again, notice they now pass Signed-off-by: Jonathan Druart <jonathan.druart@biblibre.com> Signed-off-by: Tomas Cohen Arazi <tomascohen@gmail.com> Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de> Signed-off-by: Mason James <mtj@kohaaloha.com>
This commit is contained in:
parent
e3f9cc32f4
commit
8552175a50
|
|
@ -863,19 +863,21 @@ sub AddMember {
|
|||
=cut
|
||||
|
||||
sub Check_Userid {
|
||||
my ($uid,$member) = @_;
|
||||
my $dbh = C4::Context->dbh;
|
||||
my $sth =
|
||||
$dbh->prepare(
|
||||
"SELECT * FROM borrowers WHERE userid=? AND borrowernumber != ?");
|
||||
$sth->execute( $uid, $member );
|
||||
if ( (( $uid ne '' ) && ( my $row = $sth->fetchrow_hashref )) or
|
||||
(( $uid ne '' ) && ( $uid eq C4::Context->config('user') )) ) {
|
||||
return 0;
|
||||
}
|
||||
else {
|
||||
return 1;
|
||||
}
|
||||
my ( $uid, $borrowernumber ) = @_;
|
||||
|
||||
return 0 unless ($uid); # userid is a unique column, we should assume NULL is not unique
|
||||
|
||||
return 0 if ( $uid eq C4::Context->config('user') );
|
||||
|
||||
my $rs = Koha::Database->new()->schema()->resultset('Borrower');
|
||||
|
||||
my $params;
|
||||
$params->{userid} = $uid;
|
||||
$params->{borrowernumber} = { '!=' => $borrowernumber } if ($borrowernumber);
|
||||
|
||||
my $count = $rs->count( $params );
|
||||
|
||||
return $count ? 0 : 1;
|
||||
}
|
||||
|
||||
=head2 Generate_Userid
|
||||
|
|
|
|||
Loading…
Reference in New Issue