зеркало из https://github.com/mozilla/gecko-dev.git
Bug 180460 request.cgi doesn't filter list of products/components
patch by joel r=bbaetz a=justdave
This commit is contained in:
Родитель
d3e6fb750f
Коммит
75d797af27
|
@ -795,6 +795,51 @@ sub GetEnterableProducts {
|
|||
return (@products);
|
||||
}
|
||||
|
||||
# GetEnterableProductHash
|
||||
# returns a hash containing
|
||||
# legal_products => an enterable product list
|
||||
# legal_components => the list of components of enterable products
|
||||
# components => a hash of component lists for each enterable product
|
||||
sub GetEnterableProductHash {
|
||||
my $query = "SELECT products.name, components.name " .
|
||||
"FROM products " .
|
||||
"LEFT JOIN components " .
|
||||
"ON components.product_id = products.id " .
|
||||
"LEFT JOIN group_control_map " .
|
||||
"ON group_control_map.product_id = products.id " .
|
||||
"AND group_control_map.entry != 0 ";
|
||||
if ((defined @{$::vars->{user}{groupids}})
|
||||
&& (@{$::vars->{user}{groupids}} > 0)) {
|
||||
$query .= "AND group_id NOT IN(" .
|
||||
join(',', @{$::vars->{user}{groupids}}) . ") ";
|
||||
}
|
||||
$query .= "WHERE group_id IS NULL " .
|
||||
"ORDER BY products.name, components.name";
|
||||
PushGlobalSQLState();
|
||||
SendSQL($query);
|
||||
my @products = ();
|
||||
my %components = ();
|
||||
my %components_by_product = ();
|
||||
while (MoreSQLData()) {
|
||||
my ($product, $component) = FetchSQLData();
|
||||
if (!grep($_ eq $product, @products)) {
|
||||
push @products, $product;
|
||||
}
|
||||
if ($component) {
|
||||
$components{$component} = 1;
|
||||
push @{$components_by_product{$product}}, $component;
|
||||
}
|
||||
}
|
||||
PopGlobalSQLState();
|
||||
my @componentlist = (sort keys %components);
|
||||
return {
|
||||
legal_products => \@products,
|
||||
legal_components => \@componentlist,
|
||||
components => \%components_by_product,
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
sub CanSeeBug {
|
||||
|
||||
my ($id, $userid) = @_;
|
||||
|
|
|
@ -254,9 +254,10 @@ sub queue {
|
|||
# menu when the products menu changes; used by the template to populate
|
||||
# the menus and keep the components menu consistent with the products menu
|
||||
GetVersionTable();
|
||||
$vars->{'products'} = \@::legal_product;
|
||||
$vars->{'components'} = \@::legal_components;
|
||||
$vars->{'components_by_product'} = \%::components;
|
||||
my $enterable = GetEnterableProductHash();
|
||||
$vars->{'products'} = $enterable->{legal_products};
|
||||
$vars->{'components'} = $enterable->{legal_components};
|
||||
$vars->{'components_by_product'} = $enterable->{components};
|
||||
|
||||
$vars->{'excluded_columns'} = \@excluded_columns;
|
||||
$vars->{'group_field'} = $::FORM{'group'};
|
||||
|
|
Загрузка…
Ссылка в новой задаче