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>
This commit is contained in:
Martin Renvoize 2019-03-08 16:52:07 +00:00 committed by Tomas Cohen Arazi
parent 4cb1a47d03
commit 088e0243bf
2 changed files with 13 additions and 8 deletions

View File

@ -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);

View File

@ -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 {