From: Martin Renvoize Date: Thu, 21 Mar 2019 10:16:34 +0000 (+0000) Subject: Bug 20128: (QA follow-up) Corrections to haspermission X-Git-Url: http://git.equinoxoli.org/?p=koha-equinox.git;a=commitdiff_plain;h=4c01891613f68d5eecc9d971717d2a439be041bb Bug 20128: (QA follow-up) Corrections to haspermission The haspermission routine wrongly assumed that get_user_subpermissions would return a list of all subpermissions if the user had the top level permission, but instead if just returns 1. Signed-off-by: Martin Renvoize Signed-off-by: Katrin Fischer Signed-off-by: Nick Clemens --- diff --git a/C4/Auth.pm b/C4/Auth.pm index 5a0df07..9ac819b 100644 --- a/C4/Auth.pm +++ b/C4/Auth.pm @@ -2066,6 +2066,7 @@ sub _dispatch { } } elsif ($ref eq 'HASH') { foreach my $key (keys %{$required}) { + next if $flags == 1; my $require = $required->{$key}; my $rflags = $flags->{$key}; return 0 unless _dispatch($require, $rflags); @@ -2090,7 +2091,6 @@ sub _dispatch { sub haspermission { my ( $userid, $flagsrequired ) = @_; - #Koha::Exceptions::WrongParameter->throw('$flagsrequired should not be undef') # unless defined($flagsrequired); diff --git a/t/db_dependent/Auth/haspermission.t b/t/db_dependent/Auth/haspermission.t index 0eb6c3c..064422b 100644 --- a/t/db_dependent/Auth/haspermission.t +++ b/t/db_dependent/Auth/haspermission.t @@ -111,7 +111,7 @@ subtest 'scalar top level tests' => sub { subtest 'hashref top level AND tests' => sub { - plan tests => 15; + plan tests => 16; # Check top level permission for superlibrarian my $r =