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";
$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 });
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)>
isactive => scalar $cgi->param('isactive'),
icon_url => scalar $cgi->param('icon_url'),
isbuggroup => 1,
+ use_in_all_products => scalar $cgi->param('insertnew'),
});
- # Permit all existing products to use the new group if requested.
- if ($cgi->param('insertnew')) {
- $dbh->do('INSERT INTO group_control_map
- (group_id, product_id, membercontrol, othercontrol)
- SELECT ?, products.id, ?, ? FROM products',
- undef, ($group->id, CONTROLMAPSHOWN, CONTROLMAPNA));
- }
delete_token($token);
$vars->{'message'} = 'group_created';