]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Bug 300231: Bugzilla::Classification needs a way of returning only Selectable classif...
authormkanat%kerio.com <>
Wed, 10 Aug 2005 03:31:53 +0000 (03:31 +0000)
committermkanat%kerio.com <>
Wed, 10 Aug 2005 03:31:53 +0000 (03:31 +0000)
Patch By Gabriel Sales de Oliveira <gabriel@async.com.br> r=mkanat, a=justdave

Bugzilla/User.pm

index f9efcd248ef2e98b542221c499db1b37ac22928e..e9d5102955473a7d1eeb30aeea9de9e7a6d01539 100644 (file)
@@ -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<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