From: gerv%gerv.net <> Date: Sun, 16 Feb 2003 19:59:43 +0000 (+0000) Subject: Bug 186994 - Unable to accept a new bug that has been assigned. Patch by gerv; r... X-Git-Tag: bugzilla-2.17.4~64 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5a8548ce03181d006f133b349ff8ed6605bb09fa;p=thirdparty%2Fbugzilla.git Bug 186994 - Unable to accept a new bug that has been assigned. Patch by gerv; r=bbaetz, a=justdave. --- diff --git a/Bug.pm b/Bug.pm index dd91d6f3f2..14876dbe3a 100755 --- a/Bug.pm +++ b/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/Bugzilla/Bug.pm b/Bugzilla/Bug.pm index dd91d6f3f2..14876dbe3a 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 642d5beb57..6f0d641750 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"; }