diff options
author | Mark Wells <mark@freeside.biz> | 2015-08-21 11:03:34 -0700 |
---|---|---|
committer | Mark Wells <mark@freeside.biz> | 2015-08-21 11:03:34 -0700 |
commit | cc4b5ec5fdbf35c919cf7903b67cf6a1309a229d (patch) | |
tree | 879a7888b22bce84675262be3ab6cd0ed6d3c728 /FS/bin/freeside-queued | |
parent | 9bbc67e3460dc0045df5262e89c662104e4edd9a (diff) | |
parent | 2dddd8e1742bf2e8ebe9f2d3e560bc78bba95cff (diff) |
Merge branch 'master' of git.freeside.biz:/home/git/freeside
Diffstat (limited to 'FS/bin/freeside-queued')
-rw-r--r-- | FS/bin/freeside-queued | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/FS/bin/freeside-queued b/FS/bin/freeside-queued index 7c4cf1b64..398b03d12 100644 --- a/FS/bin/freeside-queued +++ b/FS/bin/freeside-queued @@ -218,8 +218,13 @@ while (1) { # 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; |