diff options
author | Alex Schuilenburg <alex@schuilenburg.org> | 2015-12-02 13:50:04 +0100 |
---|---|---|
committer | Frédéric Buclin <LpSolit@gmail.com> | 2015-12-02 13:50:04 +0100 |
commit | cb36753dc1de6712349cd03006fa6f3514ee4122 (patch) | |
tree | 733f243d571e6fc81ff0a2ec3488a829fa726ca7 /Bugzilla | |
parent | b94ffcb1f443efa0c790441853984ea5aa5e4c31 (diff) | |
download | bugzilla-cb36753dc1de6712349cd03006fa6f3514ee4122.tar.gz bugzilla-cb36753dc1de6712349cd03006fa6f3514ee4122.tar.xz |
Bug 1219276: Creating a new group fails if a custom extension adds entries to group_control_map and "insertnew" is selected
r=LpSolit
Diffstat (limited to 'Bugzilla')
-rw-r--r-- | Bugzilla/Group.pm | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/Bugzilla/Group.pm b/Bugzilla/Group.pm index 07b78e366..f7a50f7f1 100644 --- a/Bugzilla/Group.pm +++ b/Bugzilla/Group.pm @@ -383,6 +383,7 @@ sub create { my $dbh = Bugzilla->dbh; my $silently = delete $params->{silently}; + my $use_in_all_products = delete $params->{use_in_all_products}; if (Bugzilla->usage_mode == USAGE_MODE_CMDLINE and !$silently) { print get_text('install_group_create', { name => $params->{name} }), "\n"; @@ -406,6 +407,14 @@ sub create { $sth->execute($admin->id, $group->id, GROUP_VISIBLE); } + # Permit all existing products to use the new group if requested. + if ($use_in_all_products) { + $dbh->do('INSERT INTO group_control_map + (group_id, product_id, membercontrol, othercontrol) + SELECT ?, products.id, ?, ? FROM products', + undef, ($group->id, CONTROLMAPSHOWN, CONTROLMAPNA)); + } + $group->_rederive_regexp() if $group->user_regexp; Bugzilla::Hook::process('group_end_of_create', { group => $group }); @@ -524,8 +533,11 @@ provides, in addition to any methods documented below. Note that in addition to what L<Bugzilla::Object/create($params)> normally does, this function also makes the new group be inherited -by the C<admin> group. That is, the C<admin> group will automatically -be a member of this group. +by the C<admin> group and optionally inserts access controls for +this group into all existing products. That is, the C<admin> group +will automatically be a member of this group and bugs for all +products may optionally be restricted to this group by group +members. =item C<ValidateGroupName($name, @users)> |