diff options
Diffstat (limited to 'Bugzilla/User.pm')
-rw-r--r-- | Bugzilla/User.pm | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/Bugzilla/User.pm b/Bugzilla/User.pm index fafd3551d..84fc1fb21 100644 --- a/Bugzilla/User.pm +++ b/Bugzilla/User.pm @@ -2246,6 +2246,9 @@ sub wants_bug_mail { my $self = shift; my ($bug, $relationship, $fieldDiffs, $comments, $dep_mail, $changer) = @_; + # is_silent_user is true if the username is mentioned in the param `silent_users` + return 0 if $changer && $changer->is_silent_user; + # Make a list of the events which have happened during this bug change, # from the point of view of this user. my %events; @@ -2407,13 +2410,24 @@ sub is_insider { sub is_global_watcher { my $self = shift; - if (!defined $self->{'is_global_watcher'}) { - my @watchers = split(/[,;]+/, Bugzilla->params->{'globalwatchers'}); - $self->{'is_global_watcher'} = scalar(grep { $_ eq $self->login } @watchers) ? 1 : 0; + if (!exists $self->{'is_global_watcher'}) { + my @watchers = split(/\s*,\s*/, Bugzilla->params->{'globalwatchers'}); + $self->{'is_global_watcher'} = (any { $_ eq $self->login } @watchers) ? 1 : 0; } return $self->{'is_global_watcher'}; } +sub is_silent_user { + my $self = shift; + + if (!exists $self->{'is_silent_user'}) { + my @users = split(/\s*,\s*/, Bugzilla->params->{'silent_users'}); + $self->{'is_silent_user'} = (any { $self->login eq $_ } @users) ? 1 : 0; + } + + return $self->{'is_silent_user'}; +} + sub is_timetracker { my $self = shift; |