]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Bug 312386: checksetup.cgi fails to check for existing group_group_map for new admins...
authorlpsolit%gmail.com <>
Sat, 3 Dec 2005 06:07:05 +0000 (06:07 +0000)
committerlpsolit%gmail.com <>
Sat, 3 Dec 2005 06:07:05 +0000 (06:07 +0000)
checksetup.pl

index 3fbad2348278d9424c822a8e0dfd35aed5d55e2d..04e0583c5476da05561b7c18d63094924751a9fe 100755 (executable)
@@ -4363,12 +4363,22 @@ if ($sth->rows == 0) {
 
     # 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, grant_type)
-            VALUES ($admingroupid, $group, " . GROUP_MEMBERSHIP . ")");
-        $dbh->do("INSERT INTO group_group_map
-            (member_id, grantor_id, grant_type)
-            VALUES ($admingroupid, $group, " . GROUP_BLESS . ")");
+        my $sth_check = $dbh->prepare("SELECT member_id FROM group_group_map
+                                 WHERE member_id = ?
+                                 AND  grantor_id = ?
+                                 AND grant_type = ?");
+        $sth_check->execute($admingroupid, $group, GROUP_MEMBERSHIP);
+        unless ($sth_check->rows) {
+            $dbh->do("INSERT INTO group_group_map
+                      (member_id, grantor_id, grant_type)
+                      VALUES ($admingroupid, $group, " . GROUP_MEMBERSHIP . ")");
+        }
+        $sth_check->execute($admingroupid, $group, GROUP_BLESS);
+        unless ($sth_check->rows) {
+            $dbh->do("INSERT INTO group_group_map
+                      (member_id, grantor_id, grant_type)
+                      VALUES ($admingroupid, $group, " . GROUP_BLESS . ")");
+        }
     }
 
     print "\n$login is now set up as an administrator account.\n";