]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Patch for bug 264160: Make all default groups inherit the admin group on a new instal...
authorjocuri%softhome.net <>
Sun, 26 Dec 2004 03:17:56 +0000 (03:17 +0000)
committerjocuri%softhome.net <>
Sun, 26 Dec 2004 03:17:56 +0000 (03:17 +0000)
checksetup.pl

index 46bf36ae2e2ff071005ff270d716eff583af0201..8ec2cba897e09ca8455336e62fa7be9830cc4175 100755 (executable)
@@ -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";