diff options
-rwxr-xr-x | Bug.pm | 8 | ||||
-rwxr-xr-x | Bugzilla/Bug.pm | 8 | ||||
-rwxr-xr-x | process_bug.cgi | 12 |
3 files changed, 14 insertions, 14 deletions
@@ -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/Bugzilla/Bug.pm b/Bugzilla/Bug.pm index dd91d6f3f..14876dbe3 100755 --- a/Bugzilla/Bug.pm +++ b/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/process_bug.cgi b/process_bug.cgi index 642d5beb5..6f0d64175 100755 --- a/process_bug.cgi +++ b/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"; } |