]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Bug 311278: Eliminate %::proddesc - Patch by Max Kanat-Alexander <mkanat@bugzilla...
authorlpsolit%gmail.com <>
Wed, 22 Feb 2006 01:24:32 +0000 (01:24 +0000)
committerlpsolit%gmail.com <>
Wed, 22 Feb 2006 01:24:32 +0000 (01:24 +0000)
describecomponents.cgi
enter_bug.cgi
globals.pl

index 1b1ccbfe0e0cea58a324b252c973323453baedb6..c00f39bed3a1cd5608440f55cc7f40eb33f69e15 100755 (executable)
@@ -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;
-
-    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;
-    }
+    # Products which the user is allowed to see.
+    my @products = @{$user->get_enterable_products()};
 
-    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;
 }
 
 ######################################################################
index 89ebbcb8515ec12caa97a84d4ecc285181e46f40..5d9cd0626b5a03d477453240266d3f296a04d2fa 100755 (executable)
@@ -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;
             }
         }
     }
index 6240b97379acc76aa08fe9d0dd3ace12625efce6..68299378b4af8beb90969ddfe567b49d26d2569f 100644 (file)
@@ -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']));