diff --git a/mozilla/webtools/bugzilla/Bug.pm b/mozilla/webtools/bugzilla/Bug.pm index dd91d6f3f21..14876dbe3a3 100755 --- a/mozilla/webtools/bugzilla/Bug.pm +++ b/mozilla/webtools/bugzilla/Bug.pm @@ -379,9 +379,11 @@ sub user { || ($self->{'qa_contact'} && $::userid == $self->{'qa_contact'}{'id'}) || $::userid == $self->{'assigned_to'}{'id'} || &::UserInGroup("editbugs"); - $self->{'user'}->{'canconfirm'} = ($::userid == 0) - || &::UserInGroup("canconfirm") - || &::UserInGroup("editbugs"); + $self->{'user'}->{'canconfirm'} = $::userid == 0 + || ($self->{'qa_contact'} && $::userid == $self->{'qa_contact'}{'id'}) + || $::userid == $self->{'assigned_to'}{'id'} + || &::UserInGroup("editbugs") + || &::UserInGroup("canconfirm"); return $self->{'user'}; } diff --git a/mozilla/webtools/bugzilla/Bugzilla/Bug.pm b/mozilla/webtools/bugzilla/Bugzilla/Bug.pm index dd91d6f3f21..14876dbe3a3 100644 --- a/mozilla/webtools/bugzilla/Bugzilla/Bug.pm +++ b/mozilla/webtools/bugzilla/Bugzilla/Bug.pm @@ -379,9 +379,11 @@ sub user { || ($self->{'qa_contact'} && $::userid == $self->{'qa_contact'}{'id'}) || $::userid == $self->{'assigned_to'}{'id'} || &::UserInGroup("editbugs"); - $self->{'user'}->{'canconfirm'} = ($::userid == 0) - || &::UserInGroup("canconfirm") - || &::UserInGroup("editbugs"); + $self->{'user'}->{'canconfirm'} = $::userid == 0 + || ($self->{'qa_contact'} && $::userid == $self->{'qa_contact'}{'id'}) + || $::userid == $self->{'assigned_to'}{'id'} + || &::UserInGroup("editbugs") + || &::UserInGroup("canconfirm"); return $self->{'user'}; } diff --git a/mozilla/webtools/bugzilla/process_bug.cgi b/mozilla/webtools/bugzilla/process_bug.cgi index 642d5beb57a..6f0d641750a 100755 --- a/mozilla/webtools/bugzilla/process_bug.cgi +++ b/mozilla/webtools/bugzilla/process_bug.cgi @@ -310,7 +310,9 @@ my $qacontactid; ################################################################################ # CheckCanChangeField() defines what users are allowed to change what bugs. You # can add code here for site-specific policy changes, according to the -# instructions given in the Bugzilla Guide and below. +# instructions given in the Bugzilla Guide and below. Note that you may also +# have to update the Bug::user() function to give people access to the options +# that they are permitted to change. # # CheckCanChangeField() should return true if the user is allowed to change this # field, and false if they are not. @@ -527,13 +529,7 @@ sub DoComma { } sub DoConfirm { - if ($UserInEditGroupSet < 0) { - $UserInEditGroupSet = UserInGroup("editbugs"); - } - if ($UserInCanConfirmGroupSet < 0) { - $UserInCanConfirmGroupSet = UserInGroup("canconfirm"); - } - if ($UserInEditGroupSet || $UserInCanConfirmGroupSet) { + if (CheckCanChangeField("canconfirm", $::FORM{'id'}, 0, 1)) { DoComma(); $::query .= "everconfirmed = 1"; }