diff options
author | mkanat%bugzilla.org <> | 2006-07-04 04:23:25 +0000 |
---|---|---|
committer | mkanat%bugzilla.org <> | 2006-07-04 04:23:25 +0000 |
commit | 49979b3775108f709cefbc9190eb9c7546aace94 (patch) | |
tree | 3947a3d223fdc9ab83df37783475b209b6edf4e7 | |
parent | Bug 343337: process_bug.cgi calls certain constants as global subroutines (diff) | |
download | bugzilla-49979b3775108f709cefbc9190eb9c7546aace94.tar.gz bugzilla-49979b3775108f709cefbc9190eb9c7546aace94.tar.bz2 bugzilla-49979b3775108f709cefbc9190eb9c7546aace94.zip |
Bug 343112: @Bugzilla::Config::parampanels is only defined if something calls _load_params
Patch By Max Kanat-Alexander <mkanat@bugzilla.org> r=LpSolit, a=justdave
-rw-r--r-- | Bugzilla/Config.pm | 25 | ||||
-rwxr-xr-x | editparams.cgi | 9 |
2 files changed, 17 insertions, 17 deletions
diff --git a/Bugzilla/Config.pm b/Bugzilla/Config.pm index 0e0c9d4e2..53e8b1b77 100644 --- a/Bugzilla/Config.pm +++ b/Bugzilla/Config.pm @@ -35,8 +35,6 @@ use strict; use base qw(Exporter); use Bugzilla::Constants; -our @parampanels = (); - # Module stuff @Bugzilla::Config::EXPORT = qw(Param); @@ -48,9 +46,8 @@ our @parampanels = (); admin => [qw(UpdateParams SetParam WriteParams)], db => [qw($db_driver $db_host $db_port $db_name $db_user $db_pass $db_sock)], localconfig => [qw($cvsbin $interdiffbin $diffpath $webservergroup)], - params => [qw(@parampanels)], ); -Exporter::export_ok_tags('admin', 'db', 'localconfig', 'params'); +Exporter::export_ok_tags('admin', 'db', 'localconfig'); use vars qw(@param_list); @@ -71,17 +68,12 @@ do $localconfig; my %params; # Load in the param definitions sub _load_params { - my $libpath = bz_locations()->{'libpath'}; - foreach my $item ((glob "$libpath/Bugzilla/Config/*.pm")) { - $item =~ m#/([^/]+)\.pm$#; - my $module = $1; - next if ($module eq 'Common'); - require "Bugzilla/Config/$module.pm"; + foreach my $module (param_panels()) { + eval("require Bugzilla::Config::$module") || die $@; my @new_param_list = "Bugzilla::Config::$module"->get_param_list(); foreach my $item (@new_param_list) { $params{$item->{'name'}} = $item; } - push(@parampanels, $module); push(@param_list, @new_param_list); } } @@ -89,6 +81,17 @@ sub _load_params { # Subroutines go here +sub param_panels { + my @param_panels; + my $libpath = bz_locations()->{'libpath'}; + foreach my $item ((glob "$libpath/Bugzilla/Config/*.pm")) { + $item =~ m#/([^/]+)\.pm$#; + my $module = $1; + push(@param_panels, $module) unless $module eq 'Common'; + } + return @param_panels; +} + sub Param { my ($param) = @_; diff --git a/editparams.cgi b/editparams.cgi index 61fc03811..f8c12f581 100755 --- a/editparams.cgi +++ b/editparams.cgi @@ -27,13 +27,11 @@ use lib "."; use Bugzilla; use Bugzilla::Constants; -use Bugzilla::Config qw(:DEFAULT :admin :params); +use Bugzilla::Config qw(:DEFAULT :admin); use Bugzilla::Config::Common; use Bugzilla::Util; use Bugzilla::Error; -use vars qw(@parampanels); - my $user = Bugzilla->login(LOGIN_REQUIRED); my $cgi = Bugzilla->cgi; my $template = Bugzilla->template; @@ -53,9 +51,8 @@ $current_panel = $1; my $current_module; my @panels = (); -foreach my $panel (@parampanels) { - next if ($panel eq 'Common'); - require "Bugzilla/Config/$panel.pm"; +foreach my $panel (Bugzilla::Config::param_panels()) { + eval("require Bugzilla::Config::$panel") || die $@; my @module_param_list = "Bugzilla::Config::${panel}"->get_param_list(1); my $item = { name => lc($panel), current => ($current_panel eq lc($panel)) ? 1 : 0, |