]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Bug 351339: Move group insertion out of post_bug.cgi and into Bugzilla::Bug
authormkanat%bugzilla.org <>
Sun, 10 Sep 2006 09:22:28 +0000 (09:22 +0000)
committermkanat%bugzilla.org <>
Sun, 10 Sep 2006 09:22:28 +0000 (09:22 +0000)
Patch By Max Kanat-Alexander <mkanat@bugzilla.org> r=LpSolit, a=justdave

Bugzilla/Bug.pm
post_bug.cgi

index 46b2474253d4755594486d4663fd322336dbff3e..0dfc91668974ae2de8fcaf0d06a2517f05b36eeb 100755 (executable)
@@ -242,13 +242,23 @@ sub create {
     $class->check_required_create_fields(@_);
     my $params = $class->run_create_validators(@_);
 
-    # "cc" is not a field in the bugs table, so we don't pass it to
+    # These are not a fields in the bugs table, so we don't pass them to
     # insert_create_data.
     my $cc_ids = $params->{cc};
     delete $params->{cc};
+    my $groups = $params->{groups};
+    delete $params->{groups};
 
     my $bug = $class->insert_create_data($params);
 
+    # Add the group restrictions
+    my $sth_group = $dbh->prepare(
+        'INSERT INTO bug_group_map (bug_id, group_id) VALUES (?, ?)');
+    foreach my $group_id (@$groups) {
+        $sth_group->execute($bug->bug_id, $group_id);
+    }
+
+    # Add the CCs
     my $sth_cc = $dbh->prepare('INSERT INTO cc (bug_id, who) VALUES (?,?)');
     foreach my $user_id (@$cc_ids) {
         $sth_cc->execute($bug->bug_id, $user_id);
@@ -274,6 +284,9 @@ sub run_create_validators {
 
     $params->{version} = $class->_check_version($product, $params->{version});
 
+    $params->{groups} = $class->_check_groups($product,
+        $params->{groups});
+
     my $component = $class->_check_component($product, $params->{component});
     $params->{component_id} = $component->id;
     delete $params->{component};
index e607c6f954bd9ed9ccad238a45a959b5b31f45e9..52bd763d72c3707e67c3527387b1b5fa3c54b731 100755 (executable)
@@ -145,8 +145,6 @@ foreach my $group (grep(/^bit-\d+$/, $cgi->param())) {
     push(@selected_groups, $1);
 }
 
-my @add_groups = @{Bugzilla::Bug->_check_groups($product, \@selected_groups)};
-
 # Include custom fields editable on bug creation.
 my @custom_bug_fields = Bugzilla->get_fields(
     { custom => 1, obsolete => 0, enter_bug => 1 });
@@ -185,6 +183,7 @@ foreach my $field (@bug_fields) {
 }
 $bug_params{'creation_ts'} = $timestamp;
 $bug_params{'cc'}          = [$cgi->param('cc')];
+$bug_params{'groups'}      = \@selected_groups;
 
 # Add the bug report to the DB.
 $dbh->bz_lock_tables('bugs WRITE', 'bug_group_map WRITE', 'longdescs WRITE',
@@ -202,13 +201,6 @@ my $bug = Bugzilla::Bug->create(\%bug_params);
 # Get the bug ID back.
 my $id = $bug->bug_id;
 
-# Add the group restrictions
-my $sth_addgroup = $dbh->prepare(q{
-            INSERT INTO bug_group_map (bug_id, group_id) VALUES (?, ?)});
-foreach my $group_id (@add_groups) {
-    $sth_addgroup->execute($id, $group_id);
-}
-
 # Add the initial comment, allowing for the fact that it may be private
 my $privacy = 0;
 if (Bugzilla->params->{"insidergroup"}