summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xpost_bug.cgi20
-rwxr-xr-xprocessmail7
2 files changed, 25 insertions, 2 deletions
diff --git a/post_bug.cgi b/post_bug.cgi
index ab817628e..dd6b5b366 100755
--- a/post_bug.cgi
+++ b/post_bug.cgi
@@ -242,6 +242,7 @@ SendSQL("INSERT INTO longdescs (bug_id, who, bug_when, thetext)
my %ccids;
my $ccid;
+my @cc;
# Add the CC list
if (defined $::FORM{'cc'}) {
@@ -251,15 +252,32 @@ if (defined $::FORM{'cc'}) {
if ($ccid && !$ccids{$ccid}) {
SendSQL("INSERT INTO cc (bug_id, who) VALUES ($id, $ccid)");
$ccids{$ccid} = 1;
+ push(@cc, $person);
}
}
}
}
+# Assemble the -force* strings so this counts as "Added to this capacity"
+my @ARGLIST = ();
+if (@cc) {
+ push (@ARGLIST, "-forcecc", join(",", @cc));
+}
+
+push (@ARGLIST, "-forceowner", DBID_to_name($::FORM{assigned_to}));
+
+if (defined $::FORM{qacontact}) {
+ push (@ARGLIST, "-forceqacontact", DBID_to_name($::FORM{qacontact}));
+}
+
+push (@ARGLIST, "-forcereporter", DBID_to_name($::userid));
+
+push (@ARGLIST, $id, $::COOKIE{'Bugzilla_login'});
+
# Send mail to let people know the bug has been created.
# See attachment.cgi for explanation of why it's done this way.
my $mailresults = '';
-open(PMAIL, "-|") or exec('./processmail', $id, $::COOKIE{'Bugzilla_login'});
+open(PMAIL, "-|") or exec('./processmail', @ARGLIST);
$mailresults .= $_ while <PMAIL>;
close(PMAIL);
diff --git a/processmail b/processmail
index e8509a6df..3ddf28d94 100755
--- a/processmail
+++ b/processmail
@@ -818,10 +818,15 @@ if ($#ARGV >= 0 && $ARGV[0] eq "-forceqacontact") {
@{$force{'QAcontact'}} = (trim(shift(@ARGV)));
}
+if ($#ARGV >= 0 && $ARGV[0] eq "-forcereporter") {
+ shift(@ARGV);
+ @{$force{'Reporter'}} = trim(shift(@ARGV));
+}
+
if (($#ARGV < 0) || ($#ARGV > 1)) {
print "Usage:\n processmail {bugid} {nametoexclude} " .
"[-forcecc list,of,users]\n [-forceowner name] " .
- "[-forceqacontact name]\nor\n" .
+ "[-forceqacontact name]\n [-forcereporter name]\nor\n" .
" processmail rescanall\n";
exit;
}