From 91952e0bd788ba498de9a69dd4226061ec840102 Mon Sep 17 00:00:00 2001 From: jeff Date: Fri, 8 Jun 2007 17:38:56 +0000 Subject: [PATCH] prevent multiple additions to usergroup table (work around #1606) --- FS/FS/part_export/sqlradius.pm | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/FS/FS/part_export/sqlradius.pm b/FS/FS/part_export/sqlradius.pm index 139f4001f..114ca0b1f 100644 --- a/FS/FS/part_export/sqlradius.pm +++ b/FS/FS/part_export/sqlradius.pm @@ -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; } -- 2.11.0