prevent multiple additions to usergroup table (work around #1606)
authorjeff <jeff>
Fri, 8 Jun 2007 17:38:56 +0000 (17:38 +0000)
committerjeff <jeff>
Fri, 8 Jun 2007 17:38:56 +0000 (17:38 +0000)
FS/FS/part_export/sqlradius.pm

index 139f400..114ca0b 100644 (file)
@@ -374,10 +374,17 @@ sub sqlradius_usergroup_insert { #subroutine, not method
   my $dbh = sqlradius_connect(shift, shift, shift);
   my( $username, @groups ) = @_;
 
+  my $s_sth = $dbh->prepare(
+    "SELECT COUNT(*) FROM usergroup WHERE UserName = ? AND GroupName = ?"
+  ) or die $dbh->errstr;
+
   my $sth = $dbh->prepare( 
     "INSERT INTO usergroup ( UserName, GroupName ) VALUES ( ?, ? )"
   ) or die $dbh->errstr;
+
   foreach my $group ( @groups ) {
+    $s_sth->execute( $username, $group ) or die $s_sth->errstr;
+    next if $s_sth->fetchrow_arrayref->[0];
     $sth->execute( $username, $group )
       or die "can't insert into groupname table: ". $sth->errstr;
   }