From 145f177dace8458cfb725e4405da1c77f86786cf Mon Sep 17 00:00:00 2001 From: "lpsolit%gmail.com" <> Date: Fri, 30 Oct 2009 01:01:22 +0000 Subject: =?UTF-8?q?Bug=20525252:=20editproducts.cgi=20should=20only=20list?= =?UTF-8?q?=20classifications=20in=20which=20there=20are=20products=20you?= =?UTF-8?q?=20can=20administer=20-=20Patch=20by=20Fr=C3=83=C2=A9d=C3=83?= =?UTF-8?q?=C2=A9ric=20Buclin=20=20r=3Dghendricks=20a?= =?UTF-8?q?=3DLpSolit?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- editproducts.cgi | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) (limited to 'editproducts.cgi') diff --git a/editproducts.cgi b/editproducts.cgi index eaef243fd..e1356abbc 100755 --- a/editproducts.cgi +++ b/editproducts.cgi @@ -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()); -- cgit v1.2.1