Browse Source

Bug 22483: Restore undef behaviour

Turns out that we rely heavily on the side effect that passing undef
to haspermission would always return true no matter what permissions
or lack of permissions you had.

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
19.05.x
Martin Renvoize 5 years ago
committed by Tomas Cohen Arazi
parent
commit
088e0243bf
  1. 6
      C4/Auth.pm
  2. 15
      t/db_dependent/Auth/haspermission.t

6
C4/Auth.pm

@ -2084,8 +2084,10 @@ sub _dispatch {
sub haspermission {
my ( $userid, $flagsrequired ) = @_;
Koha::Exceptions::WrongParameter->throw('$flagsrequired should not be undef')
unless defined($flagsrequired);
return 1 unless defined($flagsrequired); # This is horrifying but restores behaviour prior to bug 22031
#Koha::Exceptions::WrongParameter->throw('$flagsrequired should not be undef')
# unless defined($flagsrequired);
my $sth = C4::Context->dbh->prepare("SELECT flags FROM borrowers WHERE userid=?");
$sth->execute($userid);

15
t/db_dependent/Auth/haspermission.t

@ -73,13 +73,16 @@ $builder->build(
subtest 'undef top level tests' => sub {
plan tests => 2;
plan tests => 1;
throws_ok { my $r = haspermission( $borr1->{userid} ); }
'Koha::Exceptions::WrongParameter',
'Exception thrown when missing $requiredflags';
throws_ok { my $r = haspermission( $borr1->{userid}, undef ); }
'Koha::Exceptions::WrongParameter', 'Exception thrown when explicit undef';
my $pass = haspermission( $borr2->{userid} );
ok($pass, "let through undef privs");
#throws_ok { my $r = haspermission( $borr1->{userid} ); }
#'Koha::Exceptions::WrongParameter',
# 'Exception thrown when missing $requiredflags';
#throws_ok { my $r = haspermission( $borr1->{userid}, undef ); }
#'Koha::Exceptions::WrongParameter', 'Exception thrown when explicit undef';
};
subtest 'scalar top level tests' => sub {

Loading…
Cancel
Save