From 4e7a27dd655784fef20ea57d72a7b31260969930 Mon Sep 17 00:00:00 2001 From: James Cole Date: Sun, 3 Oct 2021 06:05:47 +0200 Subject: [PATCH] Refer to steam method --- .../Transaction/DeleteController.php | 2 +- .../Transaction/LinkController.php | 2 +- .../Http/Controllers/UserNavigation.php | 38 +++---------------- 3 files changed, 8 insertions(+), 34 deletions(-) diff --git a/app/Http/Controllers/Transaction/DeleteController.php b/app/Http/Controllers/Transaction/DeleteController.php index 103342d2e9..1028a8051e 100644 --- a/app/Http/Controllers/Transaction/DeleteController.php +++ b/app/Http/Controllers/Transaction/DeleteController.php @@ -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'); diff --git a/app/Http/Controllers/Transaction/LinkController.php b/app/Http/Controllers/Transaction/LinkController.php index cf4748cfb5..10190ce489 100644 --- a/app/Http/Controllers/Transaction/LinkController.php +++ b/app/Http/Controllers/Transaction/LinkController.php @@ -161,6 +161,6 @@ class LinkController extends Controller { $this->repository->switchLink($link); - return redirect(URL::previous()); + return redirect(app('steam')->getSafePreviousUrl()); } } diff --git a/app/Support/Http/Controllers/UserNavigation.php b/app/Support/Http/Controllers/UserNavigation.php index 58192ac75d..a9c3508cf1 100644 --- a/app/Support/Http/Controllers/UserNavigation.php +++ b/app/Support/Http/Controllers/UserNavigation.php @@ -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; }