diff options
author | lpsolit%gmail.com <> | 2005-08-22 06:12:10 +0200 |
---|---|---|
committer | lpsolit%gmail.com <> | 2005-08-22 06:12:10 +0200 |
commit | 8e6ee8cf8a3ec1d743e0a7ad6270b095355f149b (patch) | |
tree | ba12d1ecc08dcdddc67ea787b2ba6f7fcd975013 /Bugzilla | |
parent | 2bd0cab31407e85ccfb75dad145c20633c51c4ae (diff) | |
download | bugzilla-8e6ee8cf8a3ec1d743e0a7ad6270b095355f149b.tar.gz bugzilla-8e6ee8cf8a3ec1d743e0a7ad6270b095355f149b.tar.xz |
Bug 300231: Bugzilla::User needs a way of returning only Selectable classification objects - Patch by Gabriel Sales de Oliveira <gabriel@async.com.br> r=mkanat a=justdave
Diffstat (limited to 'Bugzilla')
-rw-r--r-- | Bugzilla/User.pm | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/Bugzilla/User.pm b/Bugzilla/User.pm index 0ad345979..dfe207d7b 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 ################################################################################ @@ -449,6 +452,28 @@ 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]; + return $self->{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 { @@ -1235,6 +1260,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); @@ -1429,6 +1457,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<get_selectable_classifications> + + 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<get_userlist> Returns a reference to an array of users. The array is populated with hashrefs |