# don't put @args in the log, may expose passwords
$log->info('starting job ('.$ljob->job.')');
warn 'running "&'. $ljob->job. '('. join(', ', @args). ")\n" if $DEBUG;
+ # switch user only if a job user is available
+ my $oldCurrentUser = $FS::CurrentUser::CurrentUser;
+ my $jobuser = $ljob->access_user;
+ local $FS::CurrentUser::CurrentUser = $jobuser if $jobuser;
local $FS::UID::AutoCommit = 0; # so that we can clean up failures
eval $eval; #throw away return value? suppose so
+ $FS::CurrentUser::CurrentUser = $oldCurrentUser if $jobuser;
if ( $@ ) {
dbh->rollback;
my %hash = $ljob->hash;