. */ declare(strict_types=1); namespace FireflyIII\Http\Middleware; use Illuminate\Contracts\Session\Session; use Illuminate\Http\Request; use Illuminate\Session\Middleware\StartSession; use Log; /** * Class StartFireflySession. * * @codeCoverageIgnore */ class StartFireflySession extends StartSession { /** * Store the current URL for the request if necessary. * * @param Request $request * @param Session $session */ protected function storeCurrentUrl(Request $request, $session): void { $url = $request->fullUrl(); $forbiddenWords = strpos($url, 'offline') || strpos($url, 'jscript') || strpos($url, 'delete') || strpos($url, '/login') || strpos($url, '/json') || strpos($url, 'serviceworker') || strpos($url, '/attachments/view'); // also stop remembering "delete" URL's. if (false === $forbiddenWords && 'GET' === $request->method() && !$request->ajax()) { Log::debug(sprintf('Redirect is now "%s".', $url)); $session->setPreviousUrl($url); return; } Log::debug(sprintf('Refuse to set "%s" as current URL.', $url)); } }