From 7f26b4e7a78ac8e894fa91daa468b8a43d4fe259 Mon Sep 17 00:00:00 2001 From: James Cole Date: Fri, 27 Oct 2017 18:56:38 +0200 Subject: [PATCH] Overrule Laravel middleware [skip ci] --- app/Http/Kernel.php | 14 ++--- app/Http/Middleware/StartFireflySession.php | 67 +++++++++++++++++++++ 2 files changed, 74 insertions(+), 7 deletions(-) create mode 100644 app/Http/Middleware/StartFireflySession.php diff --git a/app/Http/Kernel.php b/app/Http/Kernel.php index 941aa58718..02130a9c93 100644 --- a/app/Http/Kernel.php +++ b/app/Http/Kernel.php @@ -42,6 +42,7 @@ use FireflyIII\Http\Middleware\Range; use FireflyIII\Http\Middleware\RedirectIfAuthenticated; use FireflyIII\Http\Middleware\RedirectIfTwoFactorAuthenticated; use FireflyIII\Http\Middleware\Sandstorm; +use FireflyIII\Http\Middleware\StartFireflySession; use FireflyIII\Http\Middleware\TrimStrings; use FireflyIII\Http\Middleware\TrustProxies; use FireflyIII\Http\Middleware\VerifyCsrfToken; @@ -54,7 +55,6 @@ use Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull; use Illuminate\Foundation\Http\Middleware\ValidatePostSize; use Illuminate\Routing\Middleware\SubstituteBindings; use Illuminate\Routing\Middleware\ThrottleRequests; -use Illuminate\Session\Middleware\StartSession; use Illuminate\View\Middleware\ShareErrorsFromSession; @@ -90,7 +90,7 @@ class Kernel extends HttpKernel Sandstorm::class, EncryptCookies::class, AddQueuedCookiesToResponse::class, - StartSession::class, + StartFireflySession::class, ShareErrorsFromSession::class, VerifyCsrfToken::class, SubstituteBindings::class, @@ -102,7 +102,7 @@ class Kernel extends HttpKernel Sandstorm::class, EncryptCookies::class, AddQueuedCookiesToResponse::class, - StartSession::class, + StartFireflySession::class, ShareErrorsFromSession::class, VerifyCsrfToken::class, SubstituteBindings::class, @@ -115,7 +115,7 @@ class Kernel extends HttpKernel Sandstorm::class, EncryptCookies::class, AddQueuedCookiesToResponse::class, - StartSession::class, + StartFireflySession::class, ShareErrorsFromSession::class, VerifyCsrfToken::class, SubstituteBindings::class, @@ -130,7 +130,7 @@ class Kernel extends HttpKernel Sandstorm::class, EncryptCookies::class, AddQueuedCookiesToResponse::class, - StartSession::class, + StartFireflySession::class, ShareErrorsFromSession::class, VerifyCsrfToken::class, SubstituteBindings::class, @@ -145,7 +145,7 @@ class Kernel extends HttpKernel Sandstorm::class, EncryptCookies::class, AddQueuedCookiesToResponse::class, - StartSession::class, + StartFireflySession::class, ShareErrorsFromSession::class, VerifyCsrfToken::class, SubstituteBindings::class, @@ -163,7 +163,7 @@ class Kernel extends HttpKernel Sandstorm::class, EncryptCookies::class, AddQueuedCookiesToResponse::class, - StartSession::class, + StartFireflySession::class, ShareErrorsFromSession::class, VerifyCsrfToken::class, SubstituteBindings::class, diff --git a/app/Http/Middleware/StartFireflySession.php b/app/Http/Middleware/StartFireflySession.php new file mode 100644 index 0000000000..31abbbcf5f --- /dev/null +++ b/app/Http/Middleware/StartFireflySession.php @@ -0,0 +1,67 @@ +. + */ + +declare(strict_types=1); + +namespace FireflyIII\Http\Middleware; + + +use Closure; +use Illuminate\Http\Request; +use Illuminate\Session\Middleware\StartSession; + +/** + * Class StartFireflySession + * + * @package FireflyIII\Http\Middleware + */ +class StartFireflySession extends StartSession +{ + /** + * Handle an incoming request. + * + * @param \Illuminate\Http\Request $request + * @param Closure $next + * + * @return mixed + */ + public function handle($request, Closure $next) + { + return parent::handle($request, $next); // defer to the right stuff + } + + /** + * Store the current URL for the request if necessary. + * + * @param \Illuminate\Http\Request $request + * @param \Illuminate\Contracts\Session\Session $session + * + * @return void + */ + protected function storeCurrentUrl(Request $request, $session) + { + $uri = $request->fullUrl(); + $strpos = strpos($uri, 'jscript'); + if ($request->method() === 'GET' && $request->route() && !$request->ajax() && $strpos === false) { + $session->setPreviousUrl($uri); + } + } +} \ No newline at end of file