diff --git a/mozilla/webtools/bugzilla/bug_form.pl b/mozilla/webtools/bugzilla/bug_form.pl
index 520949a3699..a556867f219 100644
--- a/mozilla/webtools/bugzilla/bug_form.pl
+++ b/mozilla/webtools/bugzilla/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 "";
print "Confirm bug (change status to NEW) ";
@@ -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 "";
diff --git a/mozilla/webtools/bugzilla/process_bug.cgi b/mozilla/webtools/bugzilla/process_bug.cgi
index 1e25ef86129..5b5b9e44eb0 100755
--- a/mozilla/webtools/bugzilla/process_bug.cgi
+++ b/mozilla/webtools/bugzilla/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.
}
}