From: jocuri%softhome.net <> Date: Sun, 26 Dec 2004 03:17:56 +0000 (+0000) Subject: Patch for bug 264160: Make all default groups inherit the admin group on a new instal... X-Git-Tag: bugzilla-2.18~42 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=77ee05cbe98c9a6ce4f9838976f9b7c59f252bcb;p=thirdparty%2Fbugzilla.git Patch for bug 264160: Make all default groups inherit the admin group on a new install; patch by Marc Schumann , r=mkanat, r=travis, a=justdave. --- diff --git a/checksetup.pl b/checksetup.pl index 46bf36ae2e..8ec2cba897 100755 --- a/checksetup.pl +++ b/checksetup.pl @@ -4322,30 +4322,24 @@ if ($sth->rows == 0) { $sth->execute(); my ($userid) = $sth->fetchrow_array(); - foreach my $group (@groups) { - my $query = "SELECT user_id FROM user_group_map - WHERE group_id = $group AND user_id = $userid - AND isbless = 0"; - $sth = $dbh->prepare($query); - $sth->execute(); - if ( !$sth->fetchrow_array() ) { - $dbh->do("INSERT INTO user_group_map - (user_id, group_id, isbless, grant_type) - VALUES ($userid, $group, 0, " . GRANT_DIRECT . ")"); - } - } - # the admin also gets an explicit bless capability for the admin group - my $sth = $dbh->prepare("SELECT id FROM groups - WHERE name = 'admin'"); - $sth->execute(); - my ($id) = $sth->fetchrow_array(); + # Admins get explicit membership and bless capability for the admin group + my ($admingroupid) = $dbh->selectrow_array("SELECT id FROM groups + WHERE name = 'admin'"); + $dbh->do("INSERT INTO user_group_map + (user_id, group_id, isbless, grant_type) + VALUES ($userid, $admingroupid, 0, " . GRANT_DIRECT . ")"); $dbh->do("INSERT INTO user_group_map (user_id, group_id, isbless, grant_type) - VALUES ($userid, $id, 1, " . GRANT_DIRECT . ")"); + VALUES ($userid, $admingroupid, 1, " . GRANT_DIRECT . ")"); + + # Admins get inherited membership and bless capability for all groups foreach my $group ( @groups ) { $dbh->do("INSERT INTO group_group_map (member_id, grantor_id, isbless) - VALUES ($id, $group, 1)"); + VALUES ($admingroupid, $group, 0)"); + $dbh->do("INSERT INTO group_group_map + (member_id, grantor_id, isbless) + VALUES ($admingroupid, $group, 1)"); } print "\n$login is now set up as an administrator account.\n";