diff options
-rw-r--r-- | Bugzilla/User.pm | 2 | ||||
-rwxr-xr-x | process_bug.cgi | 33 | ||||
-rwxr-xr-x | showdependencytree.cgi | 2 |
3 files changed, 20 insertions, 17 deletions
diff --git a/Bugzilla/User.pm b/Bugzilla/User.pm index b12b5e135..a45cf0976 100644 --- a/Bugzilla/User.pm +++ b/Bugzilla/User.pm @@ -267,7 +267,7 @@ sub match_field { next if !defined($vars->{'mform'}->{$field}); # Skip it if this is a --do_not_change-- field - next if $dontchange eq $vars->{'form'}->{$field}; + next if $dontchange && $dontchange eq $vars->{'form'}->{$field}; # We need to move the query to $raw_field, where it will be split up, # modified by the search, and put back into $::FORM and $::MFORM diff --git a/process_bug.cgi b/process_bug.cgi index 531706582..40c9c2a08 100755 --- a/process_bug.cgi +++ b/process_bug.cgi @@ -109,6 +109,8 @@ if (defined $::FORM{'dup_id'} && $::FORM{'knob'} eq "duplicate") { ValidateComment($::FORM{'comment'}); +$::FORM{'dontchange'} = '' unless exists $::FORM{'dontchange'}; + # If the bug(s) being modified have dependencies, validate them # and rebuild the list with the validated values. This is important # because there are situations where validation changes the value @@ -1202,21 +1204,22 @@ foreach my $id (@idlist) { SendSQL("select now()"); $timestamp = FetchOneColumn(); - if ($::FORM{'work_time'} > 99999.99) { - ThrowUserError("value_out_of_range", {field => 'work_time'}); - } - if (defined $::FORM{'comment'} || defined $::FORM{'work_time'}) { - if ($::FORM{'work_time'} != 0 && - (!defined $::FORM{'comment'} || $::FORM{'comment'} =~ /^\s*$/)) { - - ThrowUserError('comment_required'); - } else { - AppendComment($id, $::COOKIE{'Bugzilla_login'}, $::FORM{'comment'}, - $::FORM{'commentprivacy'}, $timestamp, $::FORM{'work_time'}); - if ($::FORM{'work_time'} != 0) { - LogActivityEntry($id, "work_time", "", $::FORM{'work_time'}, - $whoid, $timestamp); - $bug_changed = 1; + if (UserInGroup(Param('timetrackinggroup'))) { + if ($::FORM{'work_time'} > 99999.99) { + ThrowUserError("value_out_of_range", {field => 'work_time'}); + } + if (defined $::FORM{'comment'} || defined $::FORM{'work_time'}) { + if ($::FORM{'work_time'} != 0 && + (!defined $::FORM{'comment'} || $::FORM{'comment'} =~ /^\s*$/)) { + ThrowUserError('comment_required'); + } else { + AppendComment($id, $::COOKIE{'Bugzilla_login'}, $::FORM{'comment'}, + $::FORM{'commentprivacy'}, $timestamp, $::FORM{'work_time'}); + if ($::FORM{'work_time'} != 0) { + LogActivityEntry($id, "work_time", "", $::FORM{'work_time'}, + $whoid, $timestamp); + $bug_changed = 1; + } } } } diff --git a/showdependencytree.cgi b/showdependencytree.cgi index e2e9d52b0..0508f078b 100755 --- a/showdependencytree.cgi +++ b/showdependencytree.cgi @@ -164,7 +164,7 @@ sub GetBug { $bug->{'assignee_email'}) = FetchSQLData(); } - $bug->{'open'} = IsOpenedState($bug->{'status'}); + $bug->{'open'} = $bug->{'exists'} && IsOpenedState($bug->{'status'}); $bug->{'dependencies'} = []; return $bug; |