Bug 16444: Make C4::Tags plack safe

C4::Tags use a package variable to cache the pref
TagsExternalDictionary, it's not needed and not safe.

There is not test plan, just make sure the changes are consistent.

Signed-off-by: Srdjan <srdjan@catalyst.net.nz>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>

Signed-off-by: Brendan Gallagher <brendan@bywatersolutions.com>
This commit is contained in:
Jonathan Druart 2016-05-04 20:20:51 +01:00 committed by Brendan Gallagher
parent b37d7c9935
commit fff754a7fc
1 changed files with 4 additions and 2 deletions

View File

@ -30,7 +30,6 @@ use constant TAG_FIELDS => qw(tag_id borrowernumber biblionumber term language d
use constant TAG_SELECT => "SELECT " . join(',', TAG_FIELDS) . "\n FROM tags_all\n";
use vars qw(@ISA @EXPORT @EXPORT_OK %EXPORT_TAGS);
our $ext_dict;
BEGIN {
@ISA = qw(Exporter);
@ -50,7 +49,7 @@ BEGIN {
stratify_tags
);
# %EXPORT_TAGS = ();
$ext_dict = C4::Context->preference('TagsExternalDictionary');
my $ext_dict = C4::Context->preference('TagsExternalDictionary');
if ($debug) {
require Data::Dumper;
import Data::Dumper qw(:DEFAULT);
@ -69,6 +68,7 @@ More verose debugging messages are sent in the presence of non-zero $ENV{"DEBUG"
=cut
INIT {
my $ext_dict = C4::Context->preference('TagsExternalDictionary');
$ext_dict and $Lingua::Ispell::path = $ext_dict;
$debug and print STDERR "\$Lingua::Ispell::path = $Lingua::Ispell::path\n";
}
@ -367,6 +367,7 @@ sub is_approved {
my $term = shift or return;
my $sth = C4::Context->dbh->prepare("SELECT approved FROM tags_approval WHERE term = ?");
$sth->execute($term);
my $ext_dict = C4::Context->preference('TagsExternalDictionary');
unless ($sth->rows) {
$ext_dict and return (spellcheck($term) ? 0 : 1); # spellcheck returns empty on OK word
return 0;
@ -390,6 +391,7 @@ sub get_tag_index {
sub whitelist {
my $operator = shift;
defined $operator or return; # have to test defined to allow =0 (kohaadmin)
my $ext_dict = C4::Context->preference('TagsExternalDictionary');
if ($ext_dict) {
foreach (@_) {
spellcheck($_) or next;