C4/Templates::badtemplatecheck mucks with the config('pluginsdir') array ref.
This makes sure it operates on a copy of the array.
To test:
1) $ prove t/db_dependent/Templates.t
Signed-off-by: David Nind <david@davidnind.com>
JK: Fix commit message styling and add test plan
Signed-off-by: Joonas Kylmälä <joonas.kylmala@iki.fi>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
# 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 ) {