summaryrefslogtreecommitdiffstats
path: root/Bugzilla/Bug.pm
diff options
context:
space:
mode:
Diffstat (limited to 'Bugzilla/Bug.pm')
-rw-r--r--Bugzilla/Bug.pm27
1 files changed, 27 insertions, 0 deletions
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;