]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Patch for bug 255512: For bz_secure, distinguish between mandatory and non-mandatory...
authorjocuri%softhome.net <>
Fri, 24 Sep 2004 02:05:19 +0000 (02:05 +0000)
committerjocuri%softhome.net <>
Fri, 24 Sep 2004 02:05:19 +0000 (02:05 +0000)
buglist.cgi
css/buglist.css
skins/standard/buglist.css
template/en/default/list/table.html.tmpl

index 9cde2dcf80550609933b8199ccfe630f427a70b5..3c5e732557a54d5f500986e6a8c8cb767fd64383 100755 (executable)
@@ -812,7 +812,7 @@ while (my @row = FetchSQLData()) {
     $bugproducts->{$bug->{'product'}} = 1 if $bug->{'product'};
     $bugstatuses->{$bug->{'bug_status'}} = 1 if $bug->{'bug_status'};
 
-    $bug->{isingroups} = 0;
+    $bug->{'secure_mode'} = undef;
 
     # Add the record to the list.
     push(@bugs, $bug);
@@ -821,20 +821,29 @@ while (my @row = FetchSQLData()) {
     push(@bugidlist, $bug->{'bug_id'});
 }
 
-# Check for bug privacy and set $bug->{isingroups} = 1 if private 
-# to 1 or more groups
-my %privatebugs;
+# Check for bug privacy and set $bug->{'secure_mode'} to 'implied' or 'manual'
+# based on whether the privacy is simply product implied (by mandatory groups)
+# or because of human choice
+my %min_membercontrol;
 if (@bugidlist) {
-    SendSQL("SELECT DISTINCT bugs.bug_id FROM bugs, bug_group_map " .
+    SendSQL("SELECT DISTINCT bugs.bug_id, MIN(group_control_map.membercontrol) " .
+            "FROM bugs, bug_group_map " .
+            "LEFT JOIN group_control_map " .
+            "ON group_control_map.product_id=bugs.product_id " .
+            "AND group_control_map.group_id=bug_group_map.group_id " .
             "WHERE bugs.bug_id = bug_group_map.bug_id " .
-            "AND bugs.bug_id IN (" . join(',',@bugidlist) . ")");
+            "AND bugs.bug_id IN (" . join(',',@bugidlist) . ") " .
+            "GROUP BY bugs.bug_id");
     while (MoreSQLData()) {
-        my ($bug_id) = FetchSQLData();
-        $privatebugs{$bug_id} = 1;
+        my ($bug_id, $min_membercontrol) = FetchSQLData();
+        $min_membercontrol{$bug_id} = $min_membercontrol;
     }
     foreach my $bug (@bugs) {
-        if ($privatebugs{$bug->{'bug_id'}}) {
-            $bug->{isingroups} = 1;
+        if ($min_membercontrol{$bug->{'bug_id'}} == CONTROLMAPSHOWN
+              || $min_membercontrol{$bug->{'bug_id'}} == CONTROLMAPDEFAULT) {
+            $bug->{'secure_mode'} = 'manual';
+        } elsif ($min_membercontrol{$bug->{'bug_id'}} == CONTROLMAPMANDATORY) {
+            $bug->{'secure_mode'} = 'implied';
         }
     }
 }
index 6051b95d9d2b07f6c8c294c1d0c474a917f9d921..f8b814abeebb9bf59505bd83a30b73c287dca7ce 100644 (file)
@@ -50,3 +50,8 @@ tr.bz_secure td.first-child {
   background-color: inherit;
 }
 
+tr.bz_secure_mode_implied td.first-child {
+}
+
+tr.bz_secure_mode_manual td.first-child {
+}
index 6051b95d9d2b07f6c8c294c1d0c474a917f9d921..f8b814abeebb9bf59505bd83a30b73c287dca7ce 100644 (file)
@@ -50,3 +50,8 @@ tr.bz_secure td.first-child {
   background-color: inherit;
 }
 
+tr.bz_secure_mode_implied td.first-child {
+}
+
+tr.bz_secure_mode_manual td.first-child {
+}
index 5a2cf841828b3b8d70ac3bdeac4bd7a42ead4512..98db7ec527bb89dcfbc9a06b52e828f4394d5e79 100644 (file)
              bz_[% bug.priority FILTER css_class_quote %]
              bz_[% bug.bug_status FILTER css_class_quote %]
              [%+ "bz_$bug.resolution" FILTER css_class_quote IF bug.resolution %]
-             [%+ "bz_secure" IF bug.isingroups %]
+             [%+ "bz_secure" IF bug.secure_mode %]
+             [%+ "bz_secure_mode_$bug.secure_mode" FILTER css_class_quote IF bug.secure_mode %]
              [%+ count % 2 == 1 ? "bz_odd" : "bz_even" %]
              ">