mirror of
https://github.com/mozilla/gecko-dev.git
synced 2025-02-04 04:58:00 +00:00
Bug 180460 request.cgi doesn't filter list of products/components
patch by joel r=bbaetz a=justdave
This commit is contained in:
parent
d3e6fb750f
commit
75d797af27
@ -795,6 +795,51 @@ sub GetEnterableProducts {
|
|||||||
return (@products);
|
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 {
|
sub CanSeeBug {
|
||||||
|
|
||||||
my ($id, $userid) = @_;
|
my ($id, $userid) = @_;
|
||||||
|
@ -254,9 +254,10 @@ sub queue {
|
|||||||
# menu when the products menu changes; used by the template to populate
|
# menu when the products menu changes; used by the template to populate
|
||||||
# the menus and keep the components menu consistent with the products menu
|
# the menus and keep the components menu consistent with the products menu
|
||||||
GetVersionTable();
|
GetVersionTable();
|
||||||
$vars->{'products'} = \@::legal_product;
|
my $enterable = GetEnterableProductHash();
|
||||||
$vars->{'components'} = \@::legal_components;
|
$vars->{'products'} = $enterable->{legal_products};
|
||||||
$vars->{'components_by_product'} = \%::components;
|
$vars->{'components'} = $enterable->{legal_components};
|
||||||
|
$vars->{'components_by_product'} = $enterable->{components};
|
||||||
|
|
||||||
$vars->{'excluded_columns'} = \@excluded_columns;
|
$vars->{'excluded_columns'} = \@excluded_columns;
|
||||||
$vars->{'group_field'} = $::FORM{'group'};
|
$vars->{'group_field'} = $::FORM{'group'};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user