From 4b650396251bd38ec3dfac75cdcd766a645a72e4 Mon Sep 17 00:00:00 2001
From: "bbaetz%cs.mcgill.ca" <>
Date: Thu, 8 Nov 2001 00:11:33 +0000
Subject: Bug 101166 - users seeing a bug via _accessible bits should see that
its the group
r=justdave,jake
---
bug_form.pl | 35 +++++++++++++++++++++++------------
1 file changed, 23 insertions(+), 12 deletions(-)
diff --git a/bug_form.pl b/bug_form.pl
index b815fbc13..67829d111 100644
--- a/bug_form.pl
+++ b/bug_form.pl
@@ -358,39 +358,50 @@ print "
";
-if ($::usergroupset ne '0') {
- SendSQL("select bit, name, description, (bit & $bug{'groupset'} != 0) " .
- "from groups where bit & $::usergroupset != 0 " .
- "and isbuggroup != 0 " .
+if ($::usergroupset ne '0' || $bug{'groupset'} ne '0') {
+ SendSQL("select bit, name, description, (bit & $bug{'groupset'} != 0), " .
+ "(bit & $::usergroupset != 0) from groups where isbuggroup != 0 " .
# Include active groups as well as inactive groups to which
# the bug already belongs. This way the bug can be removed
# from an inactive group but can only be added to active ones.
- "and (isactive = 1 or (bit & $bug{'groupset'} != 0)) " .
+ "and ((isactive = 1 and (bit & $::usergroupset != 0)) or " .
+ "(bit & $bug{'groupset'} != 0)) " .
"order by description");
# We only print out a header bit for this section if there are any
# results.
my $groupFound = 0;
+ my $inAllGroups = 1;
while (MoreSQLData()) {
- my ($bit, $name, $description, $ison) = (FetchSQLData());
+ my ($bit, $name, $description, $ison, $ingroup) = (FetchSQLData());
# For product groups, we only want to display the checkbox if either
# (1) The bit is already set, or
- # (2) It's the group for this product.
- # All other product groups will be skipped. Non-product bug groups
- # will still be displayed.
- if($ison || ($name eq $bug{'product'}) || (!defined $::proddesc{$name})) {
+ # (2) The user is in the group, but either:
+ # (a) The group is a product group for the current product, or
+ # (b) The group name isn't a product name
+ # This measns that all product groups will be skipped, but non-product
+ # bug groups will still be displayed.
+ if($ison || ($ingroup && (($name eq $bug{'product'}) ||
+ (!defined $::proddesc{$name})))) {
if(!$groupFound) {
print " Only users in the selected groups can view this bug: \n";
- print "(Leave all boxes unchecked to make this a public bug.)
\n";
+ print "(Unchecking all boxes makes this a public bug.)
\n";
$groupFound = 1;
}
+ if(!$ingroup) {
+ $inAllGroups = 0;
+ }
# Modifying this to use checkboxes instead
my $checked = $ison ? " CHECKED" : "";
+ my $disabled = $ingroup ? "" : " DISABLED=\"disabled\"";
# indent these a bit
print " ";
- print "\n";
+ print "\n";
print "$description \n";
}
}
+ if (!$inAllGroups) {
+ print "Only members of a group can change the visibility of a bug for that group ";
+ }
# If the bug is restricted to a group, display checkboxes that allow
# the user to set whether or not the reporter, assignee, QA contact,
--
cgit v1.2.3-24-g4f1b