mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-26 06:11:37 +00:00
Bug 311278: Eliminate %::proddesc - Patch by Max Kanat-Alexander <mkanat@bugzilla.org> r=LpSolit a=justdave
This commit is contained in:
parent
b66e82b187
commit
662763145c
@ -42,28 +42,21 @@ my $product = trim($cgi->param('product') || '');
|
||||
my $product_id = get_product_id($product);
|
||||
|
||||
if (!$product_id || !$user->can_enter_product($product)) {
|
||||
# Reference to a subset of %::proddesc, which the user is allowed to see
|
||||
my %products;
|
||||
# Products which the user is allowed to see.
|
||||
my @products = @{$user->get_enterable_products()};
|
||||
|
||||
if (AnyEntryGroups()) {
|
||||
# OK, now only add products the user can see
|
||||
Bugzilla->login(LOGIN_REQUIRED);
|
||||
foreach my $p (@::legal_product) {
|
||||
if ($user->can_enter_product($p)) {
|
||||
$products{$p} = $::proddesc{$p};
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
%products = %::proddesc;
|
||||
}
|
||||
|
||||
my $prodsize = scalar(keys %products);
|
||||
if ($prodsize == 0) {
|
||||
if (scalar(@products) == 0) {
|
||||
ThrowUserError("no_products");
|
||||
}
|
||||
elsif ($prodsize > 1) {
|
||||
$vars->{'proddesc'} = \%products;
|
||||
elsif (scalar(@products) > 1) {
|
||||
# XXX - For backwards-compatibility with old template
|
||||
# interfaces, we now create a proddesc hash. This can go away
|
||||
# once we update the templates.
|
||||
my %product_desc;
|
||||
foreach my $product (@products) {
|
||||
$product_desc{$product->name} = $product->description;
|
||||
}
|
||||
$vars->{'proddesc'} = \%product_desc;
|
||||
$vars->{'target'} = "describecomponents.cgi";
|
||||
# If an invalid product name is given, or the user is not
|
||||
# allowed to access that product, a message is displayed
|
||||
@ -79,8 +72,9 @@ if (!$product_id || !$user->can_enter_product($product)) {
|
||||
exit;
|
||||
}
|
||||
|
||||
$product = (keys %products)[0];
|
||||
$product_id = get_product_id($product);
|
||||
# Else, if there is only one product:
|
||||
$product = $products[0]->name;
|
||||
$product_id = $products[0]->id;
|
||||
}
|
||||
|
||||
######################################################################
|
||||
|
@ -53,7 +53,6 @@ use vars qw(
|
||||
@legal_keywords
|
||||
%versions
|
||||
%target_milestone
|
||||
$proddesc
|
||||
);
|
||||
|
||||
# If we're using bug groups to restrict bug entry, we need to know who the
|
||||
@ -115,11 +114,13 @@ if (!defined $product || $product eq "") {
|
||||
}
|
||||
|
||||
my %products;
|
||||
# XXX - This loop should work in some more sensible, efficient way.
|
||||
foreach my $p (@enterable_products) {
|
||||
if (Bugzilla->user->can_enter_product($p)) {
|
||||
if (IsInClassification(scalar $cgi->param('classification'),$p) ||
|
||||
$cgi->param('classification') eq "__all") {
|
||||
$products{$p} = $::proddesc{$p};
|
||||
my $product_object = new Bugzilla::Product({name => $p});
|
||||
$products{$p} = $product_object->description;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -57,7 +57,6 @@ sub globals_pl_sillyness {
|
||||
$zz = @main::legal_target_milestone;
|
||||
$zz = @main::legal_versions;
|
||||
$zz = @main::milestoneurl;
|
||||
$zz = %main::proddesc;
|
||||
$zz = @main::prodmaxvotes;
|
||||
}
|
||||
|
||||
@ -158,11 +157,10 @@ sub GenerateVersionTable {
|
||||
|
||||
my $mpart = $dotargetmilestone ? ", milestoneurl" : "";
|
||||
|
||||
SendSQL("SELECT name, description, votesperuser, disallownew$mpart " .
|
||||
SendSQL("SELECT name, votesperuser, disallownew$mpart " .
|
||||
"FROM products ORDER BY name");
|
||||
while (@line = FetchSQLData()) {
|
||||
my ($p, $d, $votesperuser, $dis, $u) = (@line);
|
||||
$::proddesc{$p} = $d;
|
||||
my ($p, $votesperuser, $dis, $u) = (@line);
|
||||
if (!$dis && scalar($::components{$p})) {
|
||||
push @::enterable_products, $p;
|
||||
}
|
||||
@ -241,10 +239,10 @@ sub GenerateVersionTable {
|
||||
'*::legal_platform', '*::legal_opsys',
|
||||
'*::legal_bug_status', '*::legal_resolution']));
|
||||
|
||||
print $fh (Data::Dumper->Dump([\@::settable_resolution, \%::proddesc,
|
||||
print $fh (Data::Dumper->Dump([\@::settable_resolution,
|
||||
\%::classifications,
|
||||
\@::enterable_products, \%::prodmaxvotes],
|
||||
['*::settable_resolution', '*::proddesc',
|
||||
['*::settable_resolution',
|
||||
'*::classifications',
|
||||
'*::enterable_products', '*::prodmaxvotes']));
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user