From 75e92404700746d6fb0a05e6ee098fe88efc7530 Mon Sep 17 00:00:00 2001 From: "lpsolit%gmail.com" <> Date: Sun, 29 Jun 2008 00:01:44 +0000 Subject: Bug 428440: Move code to set new product and related groups from process_bug.cgi to new function $bug->set_all - Patch by Noura Elhawary r=LpSolit r=mkanat a=mkanat --- Bugzilla/Bug.pm | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) (limited to 'Bugzilla') diff --git a/Bugzilla/Bug.pm b/Bugzilla/Bug.pm index 2335d0caa..c32672ce2 100644 --- a/Bugzilla/Bug.pm +++ b/Bugzilla/Bug.pm @@ -501,6 +501,33 @@ sub run_create_validators { return $params; } +sub set_all { + my ($self, $args) = @_; + + # For security purposes, and because lots of other checks depend on it, + # we set the product first before anything else. + my $product_change = 0; + if ($args->{product}) { + my $changed = $self->set_product($args->{product}, + { component => $args->{component}, + version => $args->{version}, + target_milestone => $args->{target_milestone}, + change_confirmed => $args->{confirm_product_change}, + other_bugs => $args->{other_bugs}, + }); + # that will be used later to check strict isolation + $product_change = $changed; + } + + # add/remove groups + $self->remove_group($_) foreach @{$args->{remove_group}}; + $self->add_group($_) foreach @{$args->{add_group}}; + + # this is temporary until all related code is moved from + # process_bug.cgi to set_all + return $product_change; +} + sub update { my $self = shift; -- cgit v1.2.3-24-g4f1b