Bug 42946: Bugs filed at same time causing one to be duplicated - Patch by Olav Vitters <bugzilla-mozilla@bkor.dhs.org> r=LpSolit a=justdave

git-svn-id: svn://10.0.0.236/trunk@199025 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
lpsolit%gmail.com
2006-06-05 10:58:38 +00:00
parent 7544044262
commit 5479a9c388
5 changed files with 94 additions and 0 deletions

View File

@@ -35,6 +35,7 @@ use Bugzilla::User;
use Bugzilla::Field;
use Bugzilla::Product;
use Bugzilla::Keyword;
use Bugzilla::Token;
# Shut up misguided -w warnings about "used only once". For some reason,
# "use vars" chokes on me when I try it here.
@@ -73,6 +74,33 @@ sub GroupIsActive {
# Main Script
######################################################################
# Detect if the user already used the same form to submit a bug
my $token = trim($cgi->param('token'));
if ($token) {
my ($creator_id, $date, $old_bug_id) = Bugzilla::Token::GetTokenData($token);
unless ($creator_id
&& ($creator_id == $user->id)
&& ($old_bug_id =~ "^createbug:"))
{
# The token is invalid.
ThrowUserError('token_inexistent');
}
$old_bug_id =~ s/^createbug://;
if ($old_bug_id && (!$cgi->param('ignore_token')
|| ($cgi->param('ignore_token') != $old_bug_id)))
{
$vars->{'bugid'} = $old_bug_id;
$vars->{'allow_override'} = defined $cgi->param('ignore_token') ? 0 : 1;
print $cgi->header();
$template->process("bug/create/confirm-create-dupe.html.tmpl", $vars)
|| ThrowTemplateError($template->error());
exit;
}
}
# do a match on the fields if applicable
&Bugzilla::User::match_field ($cgi, {
@@ -544,6 +572,12 @@ if ($cgi->cookie("BUGLIST")) {
$vars->{'bug_list'} = \@bug_list;
$vars->{'use_keywords'} = 1 if Bugzilla::Keyword::keyword_count();
if ($token) {
trick_taint($token);
$dbh->do('UPDATE tokens SET eventdata = ? WHERE token = ?', undef,
("createbug:$id", $token));
}
print $cgi->header();
$template->process("bug/create/created.html.tmpl", $vars)
|| ThrowTemplateError($template->error());