summaryrefslogtreecommitdiffstats
path: root/extensions/BMO/Extension.pm
diff options
context:
space:
mode:
authorByron Jones <bjones@mozilla.com>2012-07-24 10:54:01 +0200
committerByron Jones <bjones@mozilla.com>2012-07-24 10:54:01 +0200
commitcfd67484c07a29617c3e35e03b90bdd3befc6dd7 (patch)
treeafa8c64e2f79ddf156101a69758a907d49c42362 /extensions/BMO/Extension.pm
parentd60fcb5fdf1e208c46b807c4e91e05eb65307243 (diff)
downloadbugzilla-cfd67484c07a29617c3e35e03b90bdd3befc6dd7.tar.gz
bugzilla-cfd67484c07a29617c3e35e03b90bdd3befc6dd7.tar.xz
Bug 772776: add a "visiblity group" for the partner-confidential group
Diffstat (limited to 'extensions/BMO/Extension.pm')
-rw-r--r--extensions/BMO/Extension.pm24
1 files changed, 21 insertions, 3 deletions
diff --git a/extensions/BMO/Extension.pm b/extensions/BMO/Extension.pm
index b382e240d..d0c392cf0 100644
--- a/extensions/BMO/Extension.pm
+++ b/extensions/BMO/Extension.pm
@@ -47,13 +47,14 @@ use Bugzilla::Extension::BMO::Data qw($cf_visible_in_products
$cf_flags
$cf_project_flags
$cf_disabled_flags
- %group_to_cc_map
+ %group_change_notification
$blocking_trusted_setters
$blocking_trusted_requesters
$status_trusted_wanters
$status_trusted_setters
$other_setters
%always_fileable_group
+ %group_auto_cc
%product_sec_groups);
use Bugzilla::Extension::BMO::Reports qw(user_activity_report
triage_reports
@@ -349,8 +350,8 @@ sub _cc_if_special_group {
return if !$group;
- if (exists $group_to_cc_map{$group}) {
- foreach my $login (@{ $group_to_cc_map{$group} }) {
+ if (exists $group_change_notification{$group}) {
+ foreach my $login (@{ $group_change_notification{$group} }) {
my $id = login_to_id($login);
$recipients->{$id}->{+REL_CC} = Bugzilla::BugMail::BIT_DIRECT();
}
@@ -654,6 +655,23 @@ sub object_end_of_create_validators {
}
}
+# Automatically CC users to bugs based on group & product
+sub bug_end_of_create {
+ my ($self, $args) = @_;
+ my $bug = $args->{'bug'};
+
+ foreach my $group_name (keys %group_auto_cc) {
+ if ($bug->in_group(Bugzilla::Group->new({ name => $group_name }))) {
+ my $ra_logins = exists $group_auto_cc{$group_name}->{$bug->product}
+ ? $group_auto_cc{$group_name}->{$bug->product}
+ : $group_auto_cc{$group_name}->{'_default'};
+ foreach my $login (@$ra_logins) {
+ $bug->add_cc($login);
+ }
+ }
+ }
+}
+
sub install_before_final_checks {
my ($self, $args) = @_;