From 8ec8da0491ad89604700b3e29a227966f6d84ba1 Mon Sep 17 00:00:00 2001 From: Perl Tidy Date: Wed, 5 Dec 2018 15:38:52 -0500 Subject: no bug - reformat all the code using the new perltidy rules --- editparams.cgi | 231 ++++++++++++++++++++++++++++++--------------------------- 1 file changed, 120 insertions(+), 111 deletions(-) (limited to 'editparams.cgi') diff --git a/editparams.cgi b/editparams.cgi index 2dd9ff08d..01e824d55 100755 --- a/editparams.cgi +++ b/editparams.cgi @@ -25,148 +25,157 @@ use Bugzilla::User::Setting; use Bugzilla::Status; use Module::Runtime qw(require_module); -my $user = Bugzilla->login(LOGIN_REQUIRED); -my $cgi = Bugzilla->cgi; +my $user = Bugzilla->login(LOGIN_REQUIRED); +my $cgi = Bugzilla->cgi; my $template = Bugzilla->template; -my $vars = {}; +my $vars = {}; print $cgi->header(); $user->in_group('tweakparams') - || ThrowUserError("auth_failure", {group => "tweakparams", - action => "access", - object => "parameters"}); + || ThrowUserError("auth_failure", + {group => "tweakparams", action => "access", object => "parameters"}); -my $action = trim($cgi->param('action') || ''); -my $token = $cgi->param('token'); +my $action = trim($cgi->param('action') || ''); +my $token = $cgi->param('token'); my $current_panel = $cgi->param('section') || 'general'; $current_panel =~ /^([A-Za-z0-9_-]+)$/; $current_panel = $1; my $current_module; -my @panels = (); +my @panels = (); my $param_panels = Bugzilla::Config::param_panels(); -my $override = Bugzilla->localconfig->{param_override}; +my $override = Bugzilla->localconfig->{param_override}; foreach my $panel (keys %$param_panels) { - my $module = $param_panels->{$panel}; - require_module($module); - my @module_param_list = $module->get_param_list(); - my $item = { - name => lc($panel), - current => ($current_panel eq lc($panel)) ? 1 : 0, - param_list => \@module_param_list, - param_override => { map { $_->{name} => $override->{$_->{name}} } @module_param_list }, - sortkey => eval "\$${module}::sortkey;", - module => $module, - }; - $item->{sortkey} //= 100000; - push(@panels, $item); - $current_module = $panel if ($current_panel eq lc($panel)); + my $module = $param_panels->{$panel}; + require_module($module); + my @module_param_list = $module->get_param_list(); + my $item = { + name => lc($panel), + current => ($current_panel eq lc($panel)) ? 1 : 0, + param_list => \@module_param_list, + param_override => + {map { $_->{name} => $override->{$_->{name}} } @module_param_list}, + sortkey => eval "\$${module}::sortkey;", + module => $module, + }; + $item->{sortkey} //= 100000; + push(@panels, $item); + $current_module = $panel if ($current_panel eq lc($panel)); } -my %hook_panels = map { $_->{name} => { params => $_->{param_list} } } - @panels; +my %hook_panels = map { $_->{name} => {params => $_->{param_list}} } @panels; + # Note that this hook is also called in Bugzilla::Config. -Bugzilla::Hook::process('config_modify_panels', { panels => \%hook_panels }); +Bugzilla::Hook::process('config_modify_panels', {panels => \%hook_panels}); $vars->{panels} = \@panels; if ($action eq 'save' && $current_module) { - check_token_data($token, 'edit_parameters'); - my @changes = (); - my @module_param_list = @{ $hook_panels{lc($current_module)}->{params} }; - - my $any_changed = 0; - foreach my $i (@module_param_list) { - my $name = $i->{'name'}; - my $value = $cgi->param($name); - - if (defined $cgi->param("reset-$name") && !$i->{'no_reset'}) { - $value = $i->{'default'}; - } else { - if ($i->{'type'} eq 'm') { - # This simplifies the code below - $value = [ $cgi->param($name) ]; - } else { - # Get rid of windows/mac-style line endings. - $value =~ s/\r\n?/\n/g; - # assume single linefeed is an empty string - $value =~ s/^\n$//; - } - # Stop complaining if the URL has no trailing slash. - # XXX - This hack can go away once bug 303662 is implemented. - if ($name =~ /(?{params}}; - my $changed; - if ($i->{'type'} eq 'm') { - my @old = sort @{Bugzilla->params->{$name}}; - my @new = sort @$value; - if (scalar(@old) != scalar(@new)) { - $changed = 1; - } else { - $changed = 0; # Assume not changed... - for (my $cnt = 0; $cnt < scalar(@old); ++$cnt) { - if ($old[$cnt] ne $new[$cnt]) { - # entry is different, therefore changed - $changed = 1; - last; - } - } - } - } else { - $changed = ($value eq Bugzilla->params->{$name})? 0 : 1; - } + my $any_changed = 0; + foreach my $i (@module_param_list) { + my $name = $i->{'name'}; + my $value = $cgi->param($name); - if ($changed) { - if (exists $i->{'checker'}) { - my $ok = $i->{'checker'}->($value, $i); - if ($ok ne "") { - ThrowUserError('invalid_parameter', { name => $name, err => $ok }); - } - } elsif ($name eq 'globalwatchers') { - # can't check this as others, as Bugzilla::Config::Common - # can not use Bugzilla::User - foreach my $watcher (split(/[,\s]+/, $value)) { - ThrowUserError( - 'invalid_parameter', - { name => $name, err => "no such user $watcher" } - ) unless login_to_id($watcher); - } - } - push(@changes, $name); - SetParam($name, $value); - if ($name eq 'duplicate_or_move_bug_status') { - Bugzilla::Status::add_missing_bug_status_transitions($value); - } - $any_changed = 1; - } + if (defined $cgi->param("reset-$name") && !$i->{'no_reset'}) { + $value = $i->{'default'}; + } + else { + if ($i->{'type'} eq 'm') { + + # This simplifies the code below + $value = [$cgi->param($name)]; + } + else { + # Get rid of windows/mac-style line endings. + $value =~ s/\r\n?/\n/g; + + # assume single linefeed is an empty string + $value =~ s/^\n$//; + } + + # Stop complaining if the URL has no trailing slash. + # XXX - This hack can go away once bug 303662 is implemented. + if ($name =~ /(?{name} eq lc($current_module); - my $module = $panel->{module}; - next unless $module->can('check_params'); - my $err = $module->check_params(Bugzilla->params); - if ($err ne '') { - ThrowUserError('invalid_parameters', { err => $err }); - } + my $changed; + if ($i->{'type'} eq 'm') { + my @old = sort @{Bugzilla->params->{$name}}; + my @new = sort @$value; + if (scalar(@old) != scalar(@new)) { + $changed = 1; + } + else { + $changed = 0; # Assume not changed... + for (my $cnt = 0; $cnt < scalar(@old); ++$cnt) { + if ($old[$cnt] ne $new[$cnt]) { + + # entry is different, therefore changed + $changed = 1; last; + } } + } + } + else { + $changed = ($value eq Bugzilla->params->{$name}) ? 0 : 1; + } + + if ($changed) { + if (exists $i->{'checker'}) { + my $ok = $i->{'checker'}->($value, $i); + if ($ok ne "") { + ThrowUserError('invalid_parameter', {name => $name, err => $ok}); + } + } + elsif ($name eq 'globalwatchers') { + + # can't check this as others, as Bugzilla::Config::Common + # can not use Bugzilla::User + foreach my $watcher (split(/[,\s]+/, $value)) { + ThrowUserError('invalid_parameter', + {name => $name, err => "no such user $watcher"}) + unless login_to_id($watcher); + } + } + push(@changes, $name); + SetParam($name, $value); + if ($name eq 'duplicate_or_move_bug_status') { + Bugzilla::Status::add_missing_bug_status_transitions($value); + } + $any_changed = 1; + } + } + + # allow panels to check inter-dependent params + if ($any_changed) { + foreach my $panel (@panels) { + next unless $panel->{name} eq lc($current_module); + my $module = $panel->{module}; + next unless $module->can('check_params'); + my $err = $module->check_params(Bugzilla->params); + if ($err ne '') { + ThrowUserError('invalid_parameters', {err => $err}); + } + last; } + } - $vars->{'message'} = 'parameters_updated'; - $vars->{'param_changed'} = \@changes; + $vars->{'message'} = 'parameters_updated'; + $vars->{'param_changed'} = \@changes; - write_params(); - delete_token($token); + write_params(); + delete_token($token); } $vars->{'token'} = issue_session_token('edit_parameters'); $template->process("admin/params/editparams.html.tmpl", $vars) - || ThrowTemplateError($template->error()); + || ThrowTemplateError($template->error()); -- cgit v1.2.3-24-g4f1b