]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Bug 300231: Bugzilla::User needs a way of returning only Selectable classification...
authorlpsolit%gmail.com <>
Mon, 22 Aug 2005 04:12:10 +0000 (04:12 +0000)
committerlpsolit%gmail.com <>
Mon, 22 Aug 2005 04:12:10 +0000 (04:12 +0000)
Bugzilla/User.pm

index 0ad34597980c83529bd4197ea3473fc8daa310a5..dfe207d7b6bc4a5c763b02f50559f2dd4758be46 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
 ################################################################################
@@ -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