]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Bug 154036 - ccing an invalid user on a bug posts the bug anyway
authorbbaetz%student.usyd.edu.au <>
Wed, 26 Jun 2002 19:17:25 +0000 (19:17 +0000)
committerbbaetz%student.usyd.edu.au <>
Wed, 26 Jun 2002 19:17:25 +0000 (19:17 +0000)
r=jouni, gerv

post_bug.cgi

index 9190ab1d7a9046c8973a87af32671879af89a151..8bba70d5983ca5315f3f7db381396f53c49ddaf1 100755 (executable)
@@ -200,6 +200,24 @@ if (exists $::FORM{'bug_status'}
     $::FORM{'everconfirmed'} = 1;
 }
 
+my %ccids;
+my @cc;
+
+# Create the ccid hash for inserting into the db
+# and the list for passing to processmail
+# use a hash rather than a list to avoid adding users twice
+if (defined $::FORM{'cc'}) {
+    foreach my $person (split(/[ ,]/, $::FORM{'cc'})) {
+        if ($person ne "") {
+            my $ccid = DBNameToIdAndCheck($person);
+            if ($ccid && !$ccids{$ccid}) {
+                $ccids{$ccid} = 1;
+                push(@cc, $person);
+            }
+        }
+    }
+}
+
 # Build up SQL string to add bug.
 my $sql = "INSERT INTO bugs " . 
   "(" . join(",", @used_fields) . ", reporter, creation_ts, groupset) " . 
@@ -256,22 +274,9 @@ my $id = FetchOneColumn();
 SendSQL("INSERT INTO longdescs (bug_id, who, bug_when, thetext) 
          VALUES ($id, $::userid, now(), " . SqlQuote($comment) . ")");
 
-my %ccids;
-my $ccid;
-my @cc;
-
-# Add the CC list
-if (defined $::FORM{'cc'}) {
-    foreach my $person (split(/[ ,]/, $::FORM{'cc'})) {
-        if ($person ne "") {
-            $ccid = DBNameToIdAndCheck($person);
-            if ($ccid && !$ccids{$ccid}) {
-                SendSQL("INSERT INTO cc (bug_id, who) VALUES ($id, $ccid)");
-                $ccids{$ccid} = 1;
-                push(@cc, $person);
-            }
-        }
-    }
+# Insert the cclist into the database
+foreach my $ccid (keys(%ccids)) {
+    SendSQL("INSERT INTO cc (bug_id, who) VALUES ($id, $ccid)");
 }
 
 SendSQL("UNLOCK TABLES") if Param("shadowdb");