]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Bug 312386: checksetup.pl fails to check for existing group_group_map entries for...
authorlpsolit%gmail.com <>
Fri, 14 Oct 2005 08:59:53 +0000 (08:59 +0000)
committerlpsolit%gmail.com <>
Fri, 14 Oct 2005 08:59:53 +0000 (08:59 +0000)
checksetup.pl

index f21523e5beaf30e5d444b4defdfdbf6ddc0cd49f..37067267d115f06859b0dee015debc65112ad513 100755 (executable)
@@ -4416,12 +4416,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";