aboutsummaryrefslogtreecommitdiffstats
path: root/Bugzilla
diff options
context:
space:
mode:
authorAlex Schuilenburg <alex@schuilenburg.org>2015-12-02 13:51:39 +0100
committerFrédéric Buclin <LpSolit@gmail.com>2015-12-02 13:51:39 +0100
commit947f2948bc03db13a3be41118c4c2a4265ca6b2a (patch)
tree3be0d6da97aa04e0c8016302300cfa745cda0f97 /Bugzilla
parent80561e202f331b824bcef607a6bab8f253c700ba (diff)
downloadbugs-947f2948bc03db13a3be41118c4c2a4265ca6b2a.tar
bugs-947f2948bc03db13a3be41118c4c2a4265ca6b2a.tar.gz
bugs-947f2948bc03db13a3be41118c4c2a4265ca6b2a.tar.bz2
bugs-947f2948bc03db13a3be41118c4c2a4265ca6b2a.tar.xz
bugs-947f2948bc03db13a3be41118c4c2a4265ca6b2a.zip
Bug 1219276: Creating a new group fails if a custom extension adds entries to group_control_map and "insertnew" is selected
r=LpSolit a=dkl
Diffstat (limited to 'Bugzilla')
-rw-r--r--Bugzilla/Group.pm16
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)>