summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Bugzilla/User.pm2
-rwxr-xr-xprocess_bug.cgi33
-rwxr-xr-xshowdependencytree.cgi2
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;