diff options
Diffstat (limited to 'editclassifications.cgi')
-rwxr-xr-x | editclassifications.cgi | 212 |
1 files changed, 108 insertions, 104 deletions
diff --git a/editclassifications.cgi b/editclassifications.cgi index 640b8b8cd..b2797af3d 100755 --- a/editclassifications.cgi +++ b/editclassifications.cgi @@ -20,26 +20,27 @@ use Bugzilla::Error; use Bugzilla::Classification; use Bugzilla::Token; -my $dbh = Bugzilla->dbh; -my $cgi = Bugzilla->cgi; +my $dbh = Bugzilla->dbh; +my $cgi = Bugzilla->cgi; my $template = Bugzilla->template; local our $vars = {}; sub LoadTemplate { - my $action = shift; - my $template = Bugzilla->template; - - $vars->{'classifications'} = [Bugzilla::Classification->get_all] - if ($action eq 'select'); - # There is currently only one section about classifications, - # so all pages point to it. Let's define it here. - $vars->{'doc_section'} = 'administering/categorization.html#classifications'; - - $action =~ /(\w+)/; - $action = $1; - $template->process("admin/classifications/$action.html.tmpl", $vars) - || ThrowTemplateError($template->error()); - exit; + my $action = shift; + my $template = Bugzilla->template; + + $vars->{'classifications'} = [Bugzilla::Classification->get_all] + if ($action eq 'select'); + + # There is currently only one section about classifications, + # so all pages point to it. Let's define it here. + $vars->{'doc_section'} = 'administering/categorization.html#classifications'; + + $action =~ /(\w+)/; + $action = $1; + $template->process("admin/classifications/$action.html.tmpl", $vars) + || ThrowTemplateError($template->error()); + exit; } # @@ -50,13 +51,12 @@ my $user = Bugzilla->login(LOGIN_REQUIRED); print $cgi->header(); -$user->in_group('editclassifications') - || ThrowUserError("auth_failure", {group => "editclassifications", - action => "edit", - object => "classifications"}); +$user->in_group('editclassifications') || ThrowUserError("auth_failure", + {group => "editclassifications", action => "edit", object => "classifications"} +); -ThrowUserError("auth_classification_not_enabled") - unless Bugzilla->params->{"useclassification"}; +ThrowUserError("auth_classification_not_enabled") + unless Bugzilla->params->{"useclassification"}; # # often used variables @@ -77,8 +77,8 @@ LoadTemplate('select') unless $action; # if ($action eq 'add') { - $vars->{'token'} = issue_session_token('add_classification'); - LoadTemplate($action); + $vars->{'token'} = issue_session_token('add_classification'); + LoadTemplate($action); } # @@ -86,20 +86,21 @@ if ($action eq 'add') { # if ($action eq 'new') { - check_token_data($token, 'add_classification'); + check_token_data($token, 'add_classification'); - my $classification = - Bugzilla::Classification->create({name => $class_name, - description => scalar $cgi->param('description'), - sortkey => scalar $cgi->param('sortkey')}); + my $classification = Bugzilla::Classification->create({ + name => $class_name, + description => scalar $cgi->param('description'), + sortkey => scalar $cgi->param('sortkey') + }); - delete_token($token); + delete_token($token); - $vars->{'message'} = 'classification_created'; - $vars->{'classification'} = $classification; - $vars->{'classifications'} = [Bugzilla::Classification->get_all]; - $vars->{'token'} = issue_session_token('reclassify_classifications'); - LoadTemplate('reclassify'); + $vars->{'message'} = 'classification_created'; + $vars->{'classification'} = $classification; + $vars->{'classifications'} = [Bugzilla::Classification->get_all]; + $vars->{'token'} = issue_session_token('reclassify_classifications'); + LoadTemplate('reclassify'); } # @@ -110,20 +111,20 @@ if ($action eq 'new') { if ($action eq 'del') { - my $classification = Bugzilla::Classification->check($class_name); + my $classification = Bugzilla::Classification->check($class_name); - if ($classification->id == 1) { - ThrowUserError("classification_not_deletable"); - } + if ($classification->id == 1) { + ThrowUserError("classification_not_deletable"); + } - if ($classification->product_count()) { - ThrowUserError("classification_has_products"); - } + if ($classification->product_count()) { + ThrowUserError("classification_has_products"); + } - $vars->{'classification'} = $classification; - $vars->{'token'} = issue_session_token('delete_classification'); + $vars->{'classification'} = $classification; + $vars->{'token'} = issue_session_token('delete_classification'); - LoadTemplate($action); + LoadTemplate($action); } # @@ -131,15 +132,15 @@ if ($action eq 'del') { # if ($action eq 'delete') { - check_token_data($token, 'delete_classification'); + check_token_data($token, 'delete_classification'); - my $classification = Bugzilla::Classification->check($class_name); - $classification->remove_from_db; - delete_token($token); + my $classification = Bugzilla::Classification->check($class_name); + $classification->remove_from_db; + delete_token($token); - $vars->{'message'} = 'classification_deleted'; - $vars->{'classification'} = $classification; - LoadTemplate('select'); + $vars->{'message'} = 'classification_deleted'; + $vars->{'classification'} = $classification; + LoadTemplate('select'); } # @@ -149,12 +150,12 @@ if ($action eq 'delete') { # if ($action eq 'edit') { - my $classification = Bugzilla::Classification->check($class_name); + my $classification = Bugzilla::Classification->check($class_name); - $vars->{'classification'} = $classification; - $vars->{'token'} = issue_session_token('edit_classification'); + $vars->{'classification'} = $classification; + $vars->{'token'} = issue_session_token('edit_classification'); - LoadTemplate($action); + LoadTemplate($action); } # @@ -162,24 +163,24 @@ if ($action eq 'edit') { # if ($action eq 'update') { - check_token_data($token, 'edit_classification'); + check_token_data($token, 'edit_classification'); - my $class_old_name = trim($cgi->param('classificationold') || ''); - my $classification = Bugzilla::Classification->check($class_old_name); + my $class_old_name = trim($cgi->param('classificationold') || ''); + my $classification = Bugzilla::Classification->check($class_old_name); - $classification->set_all({ - name => $class_name, - description => scalar $cgi->param('description'), - sortkey => scalar $cgi->param('sortkey'), - }); + $classification->set_all({ + name => $class_name, + description => scalar $cgi->param('description'), + sortkey => scalar $cgi->param('sortkey'), + }); - my $changes = $classification->update; - delete_token($token); + my $changes = $classification->update; + delete_token($token); - $vars->{'message'} = 'classification_updated'; - $vars->{'classification'} = $classification; - $vars->{'changes'} = $changes; - LoadTemplate('select'); + $vars->{'message'} = 'classification_updated'; + $vars->{'classification'} = $classification; + $vars->{'changes'} = $changes; + LoadTemplate('select'); } # @@ -187,44 +188,47 @@ if ($action eq 'update') { # if ($action eq 'reclassify') { - my $classification = Bugzilla::Classification->check($class_name); - - my $sth = $dbh->prepare("UPDATE products SET classification_id = ? - WHERE name = ?"); - my @names; - - if (defined $cgi->param('add_products')) { - check_token_data($token, 'reclassify_classifications'); - if (defined $cgi->param('prodlist')) { - foreach my $prod ($cgi->param("prodlist")) { - trick_taint($prod); - $sth->execute($classification->id, $prod); - push @names, $prod; - } - } - delete_token($token); - } elsif (defined $cgi->param('remove_products')) { - check_token_data($token, 'reclassify_classifications'); - if (defined $cgi->param('myprodlist')) { - foreach my $prod ($cgi->param("myprodlist")) { - trick_taint($prod); - $sth->execute(1, $prod); - push @names, $prod; - } - } - delete_token($token); + my $classification = Bugzilla::Classification->check($class_name); + + my $sth = $dbh->prepare( + "UPDATE products SET classification_id = ? + WHERE name = ?" + ); + my @names; + + if (defined $cgi->param('add_products')) { + check_token_data($token, 'reclassify_classifications'); + if (defined $cgi->param('prodlist')) { + foreach my $prod ($cgi->param("prodlist")) { + trick_taint($prod); + $sth->execute($classification->id, $prod); + push @names, $prod; + } + } + delete_token($token); + } + elsif (defined $cgi->param('remove_products')) { + check_token_data($token, 'reclassify_classifications'); + if (defined $cgi->param('myprodlist')) { + foreach my $prod ($cgi->param("myprodlist")) { + trick_taint($prod); + $sth->execute(1, $prod); + push @names, $prod; + } } + delete_token($token); + } - $vars->{'classifications'} = [Bugzilla::Classification->get_all]; - $vars->{'classification'} = $classification; - $vars->{'token'} = issue_session_token('reclassify_classifications'); + $vars->{'classifications'} = [Bugzilla::Classification->get_all]; + $vars->{'classification'} = $classification; + $vars->{'token'} = issue_session_token('reclassify_classifications'); - foreach my $name (@names) { - Bugzilla->memcached->clear({ table => 'products', name => $name }); - } - Bugzilla->memcached->clear_config(); + foreach my $name (@names) { + Bugzilla->memcached->clear({table => 'products', name => $name}); + } + Bugzilla->memcached->clear_config(); - LoadTemplate($action); + LoadTemplate($action); } # |