Refer to steam method

This commit is contained in:
James Cole 2021-10-03 06:05:47 +02:00
parent 5d71baa4a1
commit 4e7a27dd65
No known key found for this signature in database
GPG Key ID: BDE6667570EADBD5
3 changed files with 8 additions and 34 deletions

View File

@ -84,7 +84,7 @@ class DeleteController extends Controller
}
$objectType = strtolower($journal->transaction_type_type ?? $journal->transactionType->type);
$subTitle = (string)trans('firefly.delete_' . $objectType, ['description' => $group->title ?? $journal->description]);
$previous = URL::previous(route('index'));
$previous = app('steam')->getSafePreviousUrl(route('index'));
// put previous url in session
Log::debug('Will try to remember previous URI');
$this->rememberPreviousUri('transactions.delete.uri');

View File

@ -161,6 +161,6 @@ class LinkController extends Controller
{
$this->repository->switchLink($link);
return redirect(URL::previous());
return redirect(app('steam')->getSafePreviousUrl());
}
}

View File

@ -31,8 +31,6 @@ use FireflyIII\Models\TransactionJournal;
use FireflyIII\Models\TransactionType;
use Illuminate\Http\RedirectResponse;
use Illuminate\Routing\Redirector;
use Illuminate\Support\Str;
use Illuminate\Support\ViewErrorBag;
use Log;
/**
@ -56,17 +54,10 @@ trait UserNavigation
final protected function getPreviousUri(string $identifier): string
{
Log::debug(sprintf('Trying to retrieve URL stored under "%s"', $identifier));
$uri = (string)session($identifier);
Log::debug(sprintf('The URI is %s', $uri));
$url = (string)session($identifier);
Log::debug(sprintf('The URL is %s', $url));
if (str_contains($uri, 'jscript')) {
$uri = $this->redirectUri;
Log::debug(sprintf('URI is now %s (uri contains jscript)', $uri));
}
Log::debug(sprintf('Return direct link %s', $uri));
return $uri;
return app('steam')->getSafeUrl($url, route('index'));
}
/**
@ -172,27 +163,10 @@ trait UserNavigation
*/
final protected function rememberPreviousUri(string $identifier): ?string
{
$return = app('url')->previous();
/** @var ViewErrorBag|null $errors */
$errors = session()->get('errors');
$forbidden = ['json', 'debug'];
$return = app('steam')->getSafePreviousUrl();
session()->put($identifier, $return);
// get default host:
$default = parse_url(route('index'), PHP_URL_HOST);
// get host of previous URL:
$previous = parse_url($return, PHP_URL_HOST);
if (null !== $previous && $default === $previous && (null === $errors || (0 === $errors->count())) && !Str::contains($return, $forbidden)) {
Log::debug(sprintf('Saving URL %s under key %s', $return, $identifier));
session()->put($identifier, $return);
return $return;
}
// if no match, save default URL:
Log::info(sprintf('Refuse to set "%s" as redirect, set default route instead.', $return));
session()->put($identifier, route('index'));
Log::debug(sprintf('rememberPreviousUrl: %s: "%s"', $identifier, $return));
return $return;
}