diff --git a/webtools/bugzilla/Bugzilla/User.pm b/webtools/bugzilla/Bugzilla/User.pm index f9efcd248ef2..e9d510295547 100644 --- a/webtools/bugzilla/Bugzilla/User.pm +++ b/webtools/bugzilla/Bugzilla/User.pm @@ -41,6 +41,7 @@ use Bugzilla::Error; use Bugzilla::Util; use Bugzilla::Constants; use Bugzilla::User::Setting; +use Bugzilla::Product; use base qw(Exporter); @Bugzilla::User::EXPORT = qw(insert_new_user is_available_username @@ -60,6 +61,8 @@ use constant USER_MATCH_SUCCESS => 1; use constant MATCH_SKIP_CONFIRM => 1; +use constant GET_PRODUCTS_BY_ID => 1; + ################################################################################ # Functions ################################################################################ @@ -442,6 +445,27 @@ sub get_selectable_products { return values(%list); } +sub get_selectable_classifications ($) { + my ($self) = @_; + + if (defined $self->{selectable_classifications}) { + return $self->{selectable_classifications}; + } + + my $products = $self->get_selectable_products(GET_PRODUCTS_BY_ID); + + my $selectable_classifications; + + foreach my $prod_id (keys %$products) { + my $product = new Bugzilla::Product($prod_id); + + $selectable_classifications->{$product->classification_id} = + $product->classification; + } + $self->{selectable_classifications} = + [values %$selectable_classifications]; +} + # visible_groups_inherited returns a reference to a list of all the groups # whose members are visible to this user. sub visible_groups_inherited { @@ -1270,6 +1294,9 @@ Bugzilla::User - Object for a Bugzilla user my $user = new Bugzilla::User($id); + my @get_selectable_classifications = + $user->get_selectable_classifications; + # Class Functions $password = insert_new_user($username, $realname, $password, $disabledtext); @@ -1459,6 +1486,16 @@ the user can select bugs. If the $by_id parameter is true, it returns a hash where the keys are the product ids and the values are the product names. +=item C + + Description: Returns the classifications that a user, according his + groups ownership, can select to entering, serch, view or + edit a bug. + + Params: none. + + Returns: Bugzilla::Classification objects values. + =item C Returns a reference to an array of users. The array is populated with hashrefs