From 3e7b43ab8ebe5cbe04081bb9d68007d4acfa7d3b Mon Sep 17 00:00:00 2001 From: "mkanat%kerio.com" <> Date: Wed, 10 Aug 2005 03:31:53 +0000 Subject: Bug 300231: Bugzilla::Classification needs a way of returning only Selectable classification objects Patch By Gabriel Sales de Oliveira r=mkanat, a=justdave --- Bugzilla/User.pm | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) (limited to 'Bugzilla/User.pm') diff --git a/Bugzilla/User.pm b/Bugzilla/User.pm index f9efcd248..e9d510295 100644 --- a/Bugzilla/User.pm +++ b/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 -- cgit v1.2.3-24-g4f1b