зеркало из https://github.com/mozilla/pjs.git
Bug 257344: Remove exit from error handlers when non-interactive
r=glob,justdave a=justdave
This commit is contained in:
Родитель
e54473626a
Коммит
c5813d15b8
|
@ -111,6 +111,16 @@ sub dbh {
|
|||
return $_dbh;
|
||||
}
|
||||
|
||||
my $_batch;
|
||||
sub batch {
|
||||
my $class = shift;
|
||||
my $newval = shift;
|
||||
if ($newval) {
|
||||
$_batch = $newval;
|
||||
}
|
||||
return $_batch || 0;
|
||||
}
|
||||
|
||||
sub dbwritesallowed {
|
||||
my $class = shift;
|
||||
|
||||
|
@ -282,6 +292,13 @@ Essentially, causes calls to C<Bugzilla->user> to return C<undef>. This has the
|
|||
effect of logging out a user for the current request only; cookies and
|
||||
database sessions are left intact.
|
||||
|
||||
=item C<batch>
|
||||
|
||||
Set to true, by calling Bugzilla->batch(1), to indicate that Bugzilla is
|
||||
being called in a non-interactive manner and errors should be passed to
|
||||
die() rather than being sent to a browser and finished with an exit().
|
||||
Bugzilla->batch will return the current state of this flag.
|
||||
|
||||
=item C<dbh>
|
||||
|
||||
The current database handle. See L<DBI>.
|
||||
|
|
|
@ -69,12 +69,17 @@ sub _throw_error {
|
|||
close ERRORLOGFID;
|
||||
}
|
||||
|
||||
print Bugzilla->cgi->header();
|
||||
|
||||
my $template = Bugzilla->template;
|
||||
$template->process($name, $vars)
|
||||
|| ThrowTemplateError($template->error());
|
||||
|
||||
if (Bugzilla->batch) {
|
||||
my $message;
|
||||
$template->process($name, $vars, \$message)
|
||||
|| ThrowTemplateError($template->error());
|
||||
die("$message");
|
||||
} else {
|
||||
print Bugzilla->cgi->header();
|
||||
$template->process($name, $vars)
|
||||
|| ThrowTemplateError($template->error());
|
||||
}
|
||||
exit;
|
||||
}
|
||||
|
||||
|
@ -90,6 +95,9 @@ sub ThrowTemplateError {
|
|||
my ($template_err) = @_;
|
||||
|
||||
my $vars = {};
|
||||
if (Bugzilla->batch) {
|
||||
die("error: template error: $template_err");
|
||||
}
|
||||
|
||||
$vars->{'template_error_msg'} = $template_err;
|
||||
$vars->{'error'} = "template_error";
|
||||
|
|
Загрузка…
Ссылка в новой задаче