diff options
author | ivan <ivan> | 2011-10-17 23:53:18 +0000 |
---|---|---|
committer | ivan <ivan> | 2011-10-17 23:53:18 +0000 |
commit | 5ca058988c40a2b009f6a958c25aa22558c128b6 (patch) | |
tree | f890ad6debca1c2f5dc9441d5f47156cb5d63835 /FS/FS/part_export/sqlradius.pm | |
parent | 17470f0458a1cf5cf3ef7ebbcbbda836d37a7ee1 (diff) |
don't change RADIUS password if there's a group change, RT#14398
Diffstat (limited to 'FS/FS/part_export/sqlradius.pm')
-rw-r--r-- | FS/FS/part_export/sqlradius.pm | 20 |
1 files changed, 12 insertions, 8 deletions
diff --git a/FS/FS/part_export/sqlradius.pm b/FS/FS/part_export/sqlradius.pm index 4dea80e..b868121 100644 --- a/FS/FS/part_export/sqlradius.pm +++ b/FS/FS/part_export/sqlradius.pm @@ -251,16 +251,20 @@ sub _export_suspend { local $FS::UID::AutoCommit = 0; my $dbh = dbh; - my $err_or_queue = $self->sqlradius_queue( $new->svcnum, 'insert', - 'check', $self->export_username($new), $new->radius_check ); - unless ( ref($err_or_queue) ) { - $dbh->rollback if $oldAutoCommit; - return $err_or_queue; + my @newgroups = $self->suspended_usergroups($svc_acct); + + unless (@newgroups) { #don't change password if assigning to a suspended group + + my $err_or_queue = $self->sqlradius_queue( $new->svcnum, 'insert', + 'check', $self->export_username($new), $new->radius_check ); + unless ( ref($err_or_queue) ) { + $dbh->rollback if $oldAutoCommit; + return $err_or_queue; + } + } - my $error; - my (@newgroups) = $self->suspended_usergroups($svc_acct); - $error = + my $error = $self->sqlreplace_usergroups( $new->svcnum, $self->export_username($new), '', |