diff options
author | ivan <ivan> | 2008-10-07 00:09:04 +0000 |
---|---|---|
committer | ivan <ivan> | 2008-10-07 00:09:04 +0000 |
commit | 9bea322a16b0947c7d912141b6ba3df9d7eea0b0 (patch) | |
tree | 7c6cf8902c4641bf353f41afaf2885ced1055992 /FS/FS/Upgrade.pm | |
parent | fbd1b259fbe38748efa33de41b46153b485ba795 (diff) |
when setting last_login/last_logout, ensure only accounts actually attached to the export are updated
Diffstat (limited to 'FS/FS/Upgrade.pm')
-rw-r--r-- | FS/FS/Upgrade.pm | 21 |
1 files changed, 14 insertions, 7 deletions
diff --git a/FS/FS/Upgrade.pm b/FS/FS/Upgrade.pm index 57c94ac..bf99dce 100644 --- a/FS/FS/Upgrade.pm +++ b/FS/FS/Upgrade.pm @@ -195,17 +195,24 @@ sub upgrade_sqlradius { my ($username, $realm, $start, $stop) = @$row; $username = lc($username) unless $conf->exists('username-uppercase'); - my $extra_sql = ''; + + my $exportnum = $part_export->exportnum; + my $extra_sql = " AND exportnum = $exportnum ". + " AND exportsvcnum IS NOT NULL "; + if ( ref($part_export) =~ /withdomain/ ) { - $extra_sql = " And '$realm' = ( SELECT domain FROM svc_domain + $extra_sql = " AND '$realm' = ( SELECT domain FROM svc_domain WHERE svc_domain.svcnum = svc_acct.domsvc ) "; } - my $svc_acct = qsearchs( 'svc_acct', - { 'username' => $username }, - '', - $extra_sql, - ); + my $svc_acct = qsearchs({ + 'table' => 'svc_acct.*', + 'addl_from' => 'LEFT JOIN cust_svc USING ( svcnum )'. + 'LEFT JOIN export_svc USING ( svcpart )', + 'hashref' => { 'username' => $username }, + 'extra_sql' => $extra_sql, + }); + if ($svc_acct) { $svc_acct->last_login($start) if $start && (!$svc_acct->last_login || $start > $svc_acct->last_login); |