From 41aba99f7e8071fd30f7c0b9bad9cdcce49ba538 Mon Sep 17 00:00:00 2001 From: Michael Hafen Date: Fri, 7 May 2021 14:13:49 -0600 Subject: [PATCH] Bug 28303 - Fix plugins system with multiple pluginsdir settings Content-Type: text/plain; charset="utf-8" C4/Templates::badtemplatecheck mucks with the config('pluginsdir') array ref. This makes sure it operates on a copy of the array. --- C4/Templates.pm | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/C4/Templates.pm b/C4/Templates.pm index 2aeedf662e..30ebaef9f8 100644 --- a/C4/Templates.pm +++ b/C4/Templates.pm @@ -187,9 +187,14 @@ sub badtemplatecheck { # This also includes two dots Koha::Exceptions::NoPermission->throw( 'bad template path' ); } else { - # Check allowed dirs + # Check allowed dirs - make sure we operate on a copy of the config my $dirs = C4::Context->config("pluginsdir"); - $dirs = [ $dirs ] if !ref($dirs); + if ( !ref($dirs) ) { + $dirs = [ $dirs ]; + } + else { + $dirs = [ @$dirs ]; + } unshift @$dirs, C4::Context->config('opachtdocs'), C4::Context->config('intrahtdocs'); my $found = 0; foreach my $dir ( @$dirs ) { -- 2.25.1