restore original user when running workflows

This commit is contained in:
Graham Knop 2009-04-23 16:22:07 +00:00
parent 594a2b7eae
commit 41c92199ac
3 changed files with 9 additions and 1 deletions

View file

@ -80,7 +80,8 @@ sub execute {
my $object = shift; my $object = shift;
my $instance = shift; my $instance = shift;
$self->session->user({userId => 3}); my $previousUser = $session->user;
$session->user({userId => 3});
### TODO: If we take more than a minute, return WAITING so that some ### TODO: If we take more than a minute, return WAITING so that some
# other activity can run # other activity can run
@ -381,6 +382,7 @@ sub execute {
if ($currentVersionTag) { if ($currentVersionTag) {
$currentVersionTag->setWorking; $currentVersionTag->setWorking;
} }
$session->user({user => $previousUser});
return $self->WAITING(1); return $self->WAITING(1);
} }
my $eventData = shift @$eventList; my $eventData = shift @$eventList;
@ -431,6 +433,7 @@ sub execute {
} }
$instance->deleteScratch('events'); $instance->deleteScratch('events');
$instance->deleteScratch('feeds'); $instance->deleteScratch('feeds');
$session->user({user => $previousUser});
return $self->COMPLETE; return $self->COMPLETE;
} }

View file

@ -92,6 +92,7 @@ See WebGUI::Workflow::Activity::execute() for details.
sub execute { sub execute {
my $self = shift; my $self = shift;
my $user = shift; my $user = shift;
my $previousUser = $self->session->user;
$self->session->user({user=>$user}); $self->session->user({user=>$user});
my $message = $self->get("message"); my $message = $self->get("message");
WebGUI::Macro::process($self->session, \$message); WebGUI::Macro::process($self->session, \$message);
@ -105,6 +106,7 @@ sub execute {
}); });
$mail->addText($message); $mail->addText($message);
$mail->addFooter; $mail->addFooter;
$self->session->user({user=>$previousUser});
return $mail->send ? $self->COMPLETE : $self->ERROR; return $mail->send ? $self->COMPLETE : $self->ERROR;
} }

View file

@ -79,12 +79,15 @@ sub execute {
my $self = shift; my $self = shift;
my $user = shift; my $user = shift;
my $cmd = $self->get("command"); my $cmd = $self->get("command");
my $previousUser = $self->session->user;
$self->session->user({user=>$user}); $self->session->user({user=>$user});
WebGUI::Macro::process($self->session, \$cmd); WebGUI::Macro::process($self->session, \$cmd);
if (system($cmd)) { if (system($cmd)) {
$self->session->errorHandler->error("Workflow: RunCommandAsUser failed because: $!"); $self->session->errorHandler->error("Workflow: RunCommandAsUser failed because: $!");
$self->session->user({user=>$previousUser});
return $self->ERROR; return $self->ERROR;
} else { } else {
$self->session->user({user=>$previousUser});
return $self->COMPLETE; return $self->COMPLETE;
} }
} }