From: mkanat%bugzilla.org <> Date: Sat, 24 Oct 2009 05:24:53 +0000 (+0000) Subject: Bug 522404: Allow Bugzilla::Product->create to create multiple products in one script. X-Git-Tag: bugzilla-3.5.1~24 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ad9d2eb59d635d1d7a4fb8b2bf110c9aca495ae1;p=thirdparty%2Fbugzilla.git Bug 522404: Allow Bugzilla::Product->create to create multiple products in one script. Patch by Max Kanat-Alexander r=dkl, a=mkanat --- diff --git a/Bugzilla/Product.pm b/Bugzilla/Product.pm index ddf60177d9..7feaa48623 100644 --- a/Bugzilla/Product.pm +++ b/Bugzilla/Product.pm @@ -112,6 +112,7 @@ sub create { my $create_series = delete $params->{create_series}; my $product = $class->insert_create_data($params); + Bugzilla->user->clear_product_cache(); # Add the new version and milestone into the DB as valid values. Bugzilla::Version->create({name => $version, product => $product}); @@ -364,6 +365,7 @@ sub update { $dbh->bz_commit_transaction(); # Changes have been committed. delete $self->{check_group_controls}; + Bugzilla->user->clear_product_cache(); # Now that changes have been committed, we can send emails to voters. foreach my $msg (@msgs) { diff --git a/Bugzilla/User.pm b/Bugzilla/User.pm index 50147f90a7..7057ec90aa 100644 --- a/Bugzilla/User.pm +++ b/Bugzilla/User.pm @@ -659,6 +659,13 @@ sub visible_bugs { return [grep { $visible_cache->{blessed $_ ? $_->id : $_} } @$bugs]; } +sub clear_product_cache { + my $self = shift; + delete $self->{enterable_products}; + delete $self->{selectable_products}; + delete $self->{selectable_classifications}; +} + sub can_see_product { my ($self, $product_name) = @_; @@ -1962,6 +1969,12 @@ care of by the constructor. However, when updating the email address, the user may be placed into different groups, based on a new email regexp. This method should be called in such a case to force reresolution of these groups. +=item C + +Clears the stored values for L, +L, etc. so that their data will be read from +the database again. Used mostly by L. + =item C Description: Returns all products the user is allowed to access. This list