diff options
author | terry%mozilla.org <> | 2000-02-18 00:53:40 +0100 |
---|---|---|
committer | terry%mozilla.org <> | 2000-02-18 00:53:40 +0100 |
commit | 4410f69187675685ff241885622643652d72920e (patch) | |
tree | ca20a4733365afba480c35e06d8a910fa579a6d1 | |
parent | c11194d54e2db8681b84c385dccf5398c548d156 (diff) | |
download | bugzilla-4410f69187675685ff241885622643652d72920e.tar.gz bugzilla-4410f69187675685ff241885622643652d72920e.tar.xz |
Display all possible state transitions in a bug if the user is not
logged in. Since they haven't logged in, we don't know what they will
be allowed to do. And users who disable cookies tend to pretty often
not be logged in.
-rw-r--r-- | bug_form.pl | 15 | ||||
-rwxr-xr-x | process_bug.cgi | 3 |
2 files changed, 14 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>"; diff --git a/process_bug.cgi b/process_bug.cgi index 1e25ef861..5b5b9e44e 100755 --- a/process_bug.cgi +++ b/process_bug.cgi @@ -279,6 +279,9 @@ sub ChangeStatus { } else { $::query .= "bug_status = '$str'"; } + $::FORM{'bug_status'} = $str; # Used later for call to + # CheckCanChangeField to make sure this + # is really kosher. } } |