summaryrefslogtreecommitdiff
path: root/FS
diff options
context:
space:
mode:
authorivan <ivan>2002-11-25 10:46:55 +0000
committerivan <ivan>2002-11-25 10:46:55 +0000
commitf4ea75e514763082b64e1b3654cfbbba2ddf1c01 (patch)
tree92436a0a241777e894e68c322231c8a76cd2599d /FS
parenta2ce67a0ef3090d9c8c117f562f6aeebe4fefc13 (diff)
fix disappearing radius group bug, whew
Diffstat (limited to 'FS')
-rw-r--r--FS/FS/svc_acct.pm12
1 files changed, 11 insertions, 1 deletions
diff --git a/FS/FS/svc_acct.pm b/FS/FS/svc_acct.pm
index c808aeea4..141133403 100644
--- a/FS/FS/svc_acct.pm
+++ b/FS/FS/svc_acct.pm
@@ -1,7 +1,7 @@
package FS::svc_acct;
use strict;
-use vars qw( @ISA $noexport_hack $conf
+use vars qw( @ISA $DEBUG $me $noexport_hack $conf
$dir_prefix @shells $usernamemin
$usernamemax $passwordmin $passwordmax
$username_ampersand $username_letter $username_letterfirst
@@ -32,6 +32,9 @@ use FS::Msgcat qw(gettext);
@ISA = qw( FS::svc_Common );
+$DEBUG = 0;
+$me = '[FS::svc_acct]';
+
#ask FS::UID to run this stuff for us later
$FS::UID::callback{'FS::svc_acct'} = sub {
$conf = new FS::Conf;
@@ -496,6 +499,7 @@ sqlradius export only)
sub replace {
my ( $new, $old ) = ( shift, shift );
my $error;
+ warn "$me replacing $old with $new\n" if $DEBUG;
return "Username in use"
if $old->username ne $new->username &&
@@ -522,7 +526,13 @@ sub replace {
local $FS::UID::AutoCommit = 0;
my $dbh = dbh;
+ # redundant, but so $new->usergroup gets set
+ my $error = $new->check;
+ return $error if $error;
+
$old->usergroup( [ $old->radius_groups ] );
+ warn "old groups: ". join(' ',@{$old->usergroup}). "\n" if $DEBUG;
+ warn "new groups: ". join(' ',@{$new->usergroup}). "\n" if $DEBUG;
if ( $new->usergroup ) {
#(sorta) false laziness with FS::part_export::sqlradius::_export_replace
my @newgroups = @{$new->usergroup};