]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Bug 525252: editproducts.cgi should only list classifications in which there are...
authorlpsolit%gmail.com <>
Fri, 30 Oct 2009 01:03:29 +0000 (01:03 +0000)
committerlpsolit%gmail.com <>
Fri, 30 Oct 2009 01:03:29 +0000 (01:03 +0000)
editproducts.cgi

index 8dd42d7415e75f1eee3fb42acb0c7c04980a91d1..adbe974d4ca9b5dd31736bd25212e9f4f7cf6c05 100755 (executable)
@@ -80,8 +80,18 @@ if (Bugzilla->params->{'useclassification'}
     && !$classification_name
     && !$product_name)
 {
-    $vars->{'classifications'} = $user->in_group('editcomponents') ?
-      [Bugzilla::Classification->get_all] : $user->get_selectable_classifications;
+    my $class;
+    if ($user->in_group('editcomponents')) {
+        $class = [Bugzilla::Classification->get_all];
+    }
+    else {
+        # Only keep classifications containing at least one product
+        # which you can administer.
+        my $products = $user->get_products_by_permission('editcomponents');
+        my %class_ids = map { $_->classification_id => 1 } @$products;
+        $class = Bugzilla::Classification->new_from_list([keys %class_ids]);
+    }
+    $vars->{'classifications'} = $class;
 
     $template->process("admin/products/list-classifications.html.tmpl", $vars)
         || ThrowTemplateError($template->error());