From: jeff Date: Fri, 8 Jun 2007 17:38:56 +0000 (+0000) Subject: prevent multiple additions to usergroup table (work around #1606) X-Git-Tag: TRIXBOX_2_6~499 X-Git-Url: http://git.freeside.biz/gitweb/?a=commitdiff_plain;h=91952e0bd788ba498de9a69dd4226061ec840102;p=freeside.git prevent multiple additions to usergroup table (work around #1606) --- 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; }