Fix redirect in Dancer to not forcibly apply scheme+host
This commit is contained in:
@@ -100,4 +100,15 @@ any qr{.*} => sub {
|
||||
template 'index';
|
||||
};
|
||||
|
||||
{
|
||||
# https://github.com/PerlDancer/Dancer/issues/967
|
||||
no warnings 'redefine';
|
||||
*Dancer::_redirect = sub {
|
||||
my ($destination, $status) = @_;
|
||||
my $response = Dancer::SharedData->response;
|
||||
$response->status($status || 302);
|
||||
$response->headers('Location' => $destination);
|
||||
};
|
||||
}
|
||||
|
||||
true;
|
||||
|
||||
@@ -55,9 +55,7 @@ foreach my $jobtype (keys %jobs_all, keys %jobs) {
|
||||
if exists $jobs{$jobtype} and not param('device');
|
||||
|
||||
add_job($jobtype, param('device'), param('extra'));
|
||||
|
||||
header(Location => uri_for('/admin/jobqueue')->path);
|
||||
return status(302);
|
||||
redirect uri_for('/admin/jobqueue')->path;
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@@ -159,8 +159,7 @@ get '/device' => require_login sub {
|
||||
});
|
||||
|
||||
if (!defined $dev) {
|
||||
header(Location => uri_for('/', {nosuchdevice => 1})->path_query);
|
||||
return status(302);
|
||||
return redirect uri_for('/', {nosuchdevice => 1})->path_query;
|
||||
}
|
||||
|
||||
params->{'tab'} ||= 'details';
|
||||
|
||||
@@ -66,8 +66,7 @@ get '/search' => require_login sub {
|
||||
|
||||
if (not param('tab')) {
|
||||
if (not $q) {
|
||||
header(Location => uri_for('/')->path);
|
||||
return status(302);
|
||||
return redirect uri_for('/')->path;
|
||||
}
|
||||
|
||||
# pick most likely tab for initial results
|
||||
@@ -80,12 +79,11 @@ get '/search' => require_login sub {
|
||||
if ($nd and $nd->count) {
|
||||
if ($nd->count == 1) {
|
||||
# redirect to device details for the one device
|
||||
header(Location => uri_for('/device', {
|
||||
return redirect uri_for('/device', {
|
||||
tab => 'details',
|
||||
q => ($nd->first->dns || $nd->first->ip),
|
||||
f => '',
|
||||
})->path_query);
|
||||
return status(302);
|
||||
})->path_query;
|
||||
}
|
||||
|
||||
# multiple devices
|
||||
|
||||
Reference in New Issue
Block a user