summaryrefslogtreecommitdiffstats
path: root/Bugzilla
diff options
context:
space:
mode:
authorlpsolit%gmail.com <>2005-08-22 06:12:10 +0200
committerlpsolit%gmail.com <>2005-08-22 06:12:10 +0200
commit8e6ee8cf8a3ec1d743e0a7ad6270b095355f149b (patch)
treeba12d1ecc08dcdddc67ea787b2ba6f7fcd975013 /Bugzilla
parent2bd0cab31407e85ccfb75dad145c20633c51c4ae (diff)
downloadbugzilla-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.pm38
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