summaryrefslogtreecommitdiffstats
path: root/bug_form.pl
diff options
context:
space:
mode:
Diffstat (limited to 'bug_form.pl')
-rw-r--r--bug_form.pl15
1 files changed, 11 insertions, 4 deletions
diff --git a/bug_form.pl b/bug_form.pl
index 520949a36..a556867f2 100644
--- a/bug_form.pl
+++ b/bug_form.pl
@@ -460,11 +460,18 @@ my $knum = 1;
my $status = $bug{'bug_status'};
-my $canedit = UserInGroup("editbugs");
+# In the below, if the person hasn't logged in ($::userid == 0), then
+# we treat them as if they can do anything. That's because we don't
+# know why they haven't logged in; it may just be because they don't
+# use cookies. Display everything as if they have all the permissions
+# in the world; their permissions will get checked when they log in
+# and actually try to make the change.
+
+my $canedit = UserInGroup("editbugs") || ($::userid == 0);
my $canconfirm;
if ($status eq $::unconfirmedstate) {
- $canconfirm = UserInGroup("canconfirm");
+ $canconfirm = UserInGroup("canconfirm") || ($::userid == 0);
if ($canedit || $canconfirm) {
print "<INPUT TYPE=radio NAME=knob VALUE=confirm>";
print "Confirm bug (change status to <b>NEW</b>)<br>";
@@ -473,8 +480,8 @@ if ($status eq $::unconfirmedstate) {
}
-if ($::userid && ($canedit || $::userid == $assignedtoid ||
- $::userid == $reporterid || $::userid == $qacontactid)) {
+if ($canedit || $::userid == $assignedtoid ||
+ $::userid == $reporterid || $::userid == $qacontactid) {
if (IsOpenedState($status)) {
if ($status ne "ASSIGNED") {
print "<INPUT TYPE=radio NAME=knob VALUE=accept>";