From 3c6bd62ac637b8a317a1f014a85113baa2c3030d Mon Sep 17 00:00:00 2001 From: Martin Renvoize Date: Thu, 21 Mar 2019 10:16:34 +0000 Subject: [PATCH] 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 --- C4/Auth.pm | 2 +- t/db_dependent/Auth/haspermission.t | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/C4/Auth.pm b/C4/Auth.pm index c3ba5baad2..81a0a677b9 100644 --- a/C4/Auth.pm +++ b/C4/Auth.pm @@ -2060,6 +2060,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); @@ -2084,7 +2085,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 0eb6c3c3c5..064422b013 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 = -- 2.20.1