From 51f3378e9184eb656fc0382f69158be0bb251441 Mon Sep 17 00:00:00 2001 From: "lpsolit%gmail.com" <> Date: Wed, 1 Mar 2006 06:06:34 +0000 Subject: =?UTF-8?q?Bug=20328203:=20Cannot=20update=20a=20product=20if=20'u?= =?UTF-8?q?setargetmilestone'=20is=20off=20(and=20the=20default=20mileston?= =?UTF-8?q?e=20has=20been=20previously=20changed)=20-=20Patch=20by=20Fr?= =?UTF-8?q?=C3=A9d=C3=A9ric=20Buclin=20=20r=3Dwicked=20?= =?UTF-8?q?a=3Djustdave?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- editproducts.cgi | 42 ++++++++++++++++++++++-------------------- 1 file changed, 22 insertions(+), 20 deletions(-) (limited to 'editproducts.cgi') diff --git a/editproducts.cgi b/editproducts.cgi index dc288a54b..1101f3182 100755 --- a/editproducts.cgi +++ b/editproducts.cgi @@ -820,13 +820,28 @@ if ($action eq 'update') { {product => $product_name}); } - my $milestone = new Bugzilla::Milestone($product_old->id, - $defaultmilestone); - if (!$milestone) { - ThrowUserError('prod_must_define_defaultmilestone', - {product => $product_old->name, - defaultmilestone => $defaultmilestone, - classification => $classification_name}); + # Only update milestone related stuff if 'usetargetmilestone' is on. + if (Param('usetargetmilestone')) { + my $milestone = new Bugzilla::Milestone($product_old->id, + $defaultmilestone); + + unless ($milestone) { + ThrowUserError('prod_must_define_defaultmilestone', + {product => $product_old->name, + defaultmilestone => $defaultmilestone, + classification => $classification_name}); + } + + if ($milestoneurl ne $product_old->milestone_url) { + trick_taint($milestoneurl); + $dbh->do('UPDATE products SET milestoneurl = ? WHERE id = ?', + undef, ($milestoneurl, $product_old->id)); + } + + if ($milestone->name ne $product_old->default_milestone) { + $dbh->do('UPDATE products SET defaultmilestone = ? WHERE id = ?', + undef, ($milestone->name, $product_old->id)); + } } $disallownew = $disallownew ? 1 : 0; @@ -841,13 +856,6 @@ if ($action eq 'update') { undef, ($description, $product_old->id)); } - if (Param('usetargetmilestone') - && ($milestoneurl ne $product_old->milestone_url)) { - trick_taint($milestoneurl); - $dbh->do('UPDATE products SET milestoneurl = ? WHERE id = ?', - undef, ($milestoneurl, $product_old->id)); - } - if ($votesperuser ne $product_old->votes_per_user) { $dbh->do('UPDATE products SET votesperuser = ? WHERE id = ?', undef, ($votesperuser, $product_old->id)); @@ -866,12 +874,6 @@ if ($action eq 'update') { $checkvotes = 1; } - if ($defaultmilestone ne $product_old->default_milestone) { - trick_taint($defaultmilestone); - $dbh->do('UPDATE products SET defaultmilestone = ? WHERE id = ?', - undef, ($defaultmilestone, $product_old->id)); - } - if ($product_name ne $product_old->name) { trick_taint($product_name); $dbh->do('UPDATE products SET name = ? WHERE id = ?', -- cgit v1.2.1