diff options
author | lpsolit%gmail.com <> | 2006-07-04 18:49:32 +0200 |
---|---|---|
committer | lpsolit%gmail.com <> | 2006-07-04 18:49:32 +0200 |
commit | 049069a3bf31f6ac2228b7b22a9596526d504e0b (patch) | |
tree | dcee41563d4e010bf1898c01cb0090e2757a263d /post_bug.cgi | |
parent | 6c1536df9efc8a92e1a266fe9153f5cb8bafafc1 (diff) | |
download | bugzilla-049069a3bf31f6ac2228b7b22a9596526d504e0b.tar.gz bugzilla-049069a3bf31f6ac2228b7b22a9596526d504e0b.tar.xz |
Bug 341867: post_bug.cgi lets users with editbugs and canconfirm privs enter bugs as UNCONFIRMED even when votes_to_confirm is 0 - Patch by Frédéric Buclin <LpSolit@gmail.com> r=bkor a=myk
Diffstat (limited to 'post_bug.cgi')
-rwxr-xr-x | post_bug.cgi | 38 |
1 files changed, 10 insertions, 28 deletions
diff --git a/post_bug.cgi b/post_bug.cgi index 6dcc776a4..d27ce22a7 100755 --- a/post_bug.cgi +++ b/post_bug.cgi @@ -165,11 +165,7 @@ $cgi->param('bug_file_loc', '') if $cgi->param('bug_file_loc') eq 'http://'; # Default assignee is the component owner. if (!UserInGroup("editbugs") || $cgi->param('assigned_to') eq "") { - my $initialowner = $dbh->selectrow_array(q{SELECT initialowner - FROM components - WHERE id = ?}, - undef, $component->id); - $cgi->param(-name => 'assigned_to', -value => $initialowner); + $cgi->param(-name => 'assigned_to', -value => $component->default_assignee->id); } else { $cgi->param(-name => 'assigned_to', -value => login_to_id(trim($cgi->param('assigned_to')), THROW_ERROR)); @@ -194,10 +190,7 @@ if (Bugzilla->params->{"useqacontact"}) { my $qa_contact; if (!UserInGroup("editbugs") || !defined $cgi->param('qa_contact') || trim($cgi->param('qa_contact')) eq "") { - ($qa_contact) = $dbh->selectrow_array(q{SELECT initialqacontact - FROM components - WHERE id = ?}, - undef, $component->id); + $qa_contact = $component->default_qa_contact->id; } else { $qa_contact = login_to_id(trim($cgi->param('qa_contact')), THROW_ERROR); } @@ -208,30 +201,19 @@ if (Bugzilla->params->{"useqacontact"}) { } } -if (UserInGroup("editbugs") || UserInGroup("canconfirm")) { - # Default to NEW if the user hasn't selected another status - if (!defined $cgi->param('bug_status')) { - $cgi->param(-name => 'bug_status', -value => "NEW"); +my $bug_status = 'UNCONFIRMED'; +if ($product->votes_to_confirm) { + # Default to NEW if the user with privs hasn't selected another status. + if (UserInGroup('editbugs') || UserInGroup('canconfirm')) { + $bug_status = scalar($cgi->param('bug_status')) || 'NEW'; } } else { - # Default to UNCONFIRMED if we are using it, NEW otherwise - $cgi->param(-name => 'bug_status', -value => 'UNCONFIRMED'); - my $votestoconfirm = $dbh->selectrow_array(q{SELECT votestoconfirm - FROM products - WHERE id = ?}, - undef, $product->id); - - if (!$votestoconfirm) { - $cgi->param(-name => 'bug_status', -value => "NEW"); - } + $bug_status = 'NEW'; } +$cgi->param(-name => 'bug_status', -value => $bug_status); if (!defined $cgi->param('target_milestone')) { - my $defaultmilestone = $dbh->selectrow_array(q{SELECT defaultmilestone - FROM products - WHERE name = ?}, - undef, $product->name); - $cgi->param(-name => 'target_milestone', -value => $defaultmilestone); + $cgi->param(-name => 'target_milestone', -value => $product->default_milestone); } if (!Bugzilla->params->{'letsubmitterchoosepriority'}) { |