summaryrefslogtreecommitdiff
path: root/FS/FS/Upgrade.pm
diff options
context:
space:
mode:
authorivan <ivan>2008-10-07 00:09:04 +0000
committerivan <ivan>2008-10-07 00:09:04 +0000
commit9bea322a16b0947c7d912141b6ba3df9d7eea0b0 (patch)
tree7c6cf8902c4641bf353f41afaf2885ced1055992 /FS/FS/Upgrade.pm
parentfbd1b259fbe38748efa33de41b46153b485ba795 (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.pm21
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);