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 $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
# other activity can run
@ -381,6 +382,7 @@ sub execute {
if ($currentVersionTag) {
$currentVersionTag->setWorking;
}
$session->user({user => $previousUser});
return $self->WAITING(1);
}
my $eventData = shift @$eventList;
@ -431,6 +433,7 @@ sub execute {
}
$instance->deleteScratch('events');
$instance->deleteScratch('feeds');
$session->user({user => $previousUser});
return $self->COMPLETE;
}

View file

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

View file

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