From 38b85a4e2da92d62d7442f8822a392bf2c55ff9e Mon Sep 17 00:00:00 2001 From: Jelle Roorda Date: Sat, 15 Jun 2024 11:05:34 +0200 Subject: [PATCH 1/3] Fix #9132 --- src/Http/Controllers/CP/Auth/LoginController.php | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/Http/Controllers/CP/Auth/LoginController.php b/src/Http/Controllers/CP/Auth/LoginController.php index 367d4c6a3c6..fd920f7441f 100644 --- a/src/Http/Controllers/CP/Auth/LoginController.php +++ b/src/Http/Controllers/CP/Auth/LoginController.php @@ -103,7 +103,13 @@ public function redirectPath() { $referer = request('referer'); - return Str::contains($referer, '/'.config('statamic.cp.route')) ? $referer : cp_route('index'); + if ($referer === cp_route('login')) { + return cp_route('index'); + } + + return Str::contains($referer, '/'.config('statamic.cp.route')) + ? $referer + : cp_route('index'); } protected function authenticated(Request $request, $user) From 9c3e89e43577c17735e2e24180b46a1b34b55e84 Mon Sep 17 00:00:00 2001 From: Jelle Roorda Date: Mon, 17 Jun 2024 15:22:29 +0200 Subject: [PATCH 2/3] Add forgot password as a referer too. --- src/Http/Controllers/CP/Auth/LoginController.php | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/Http/Controllers/CP/Auth/LoginController.php b/src/Http/Controllers/CP/Auth/LoginController.php index fd920f7441f..59dcc8238b5 100644 --- a/src/Http/Controllers/CP/Auth/LoginController.php +++ b/src/Http/Controllers/CP/Auth/LoginController.php @@ -103,7 +103,12 @@ public function redirectPath() { $referer = request('referer'); - if ($referer === cp_route('login')) { + $authRoutes = [ + cp_route('login'), + cp_route('password.request'), + ]; + + if (in_array($referer, $authRoutes)) { return cp_route('index'); } From 1a152731e738518dd0c499984585dfa76fa498fa Mon Sep 17 00:00:00 2001 From: Jason Varga Date: Thu, 1 Aug 2024 14:16:46 -0400 Subject: [PATCH 3/3] simplify --- src/Http/Controllers/CP/Auth/LoginController.php | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) diff --git a/src/Http/Controllers/CP/Auth/LoginController.php b/src/Http/Controllers/CP/Auth/LoginController.php index 59dcc8238b5..885cb5d91de 100644 --- a/src/Http/Controllers/CP/Auth/LoginController.php +++ b/src/Http/Controllers/CP/Auth/LoginController.php @@ -101,20 +101,11 @@ protected function guard() public function redirectPath() { + $cp = cp_route('index'); $referer = request('referer'); + $referredFromCp = Str::startsWith($referer, $cp) && ! Str::startsWith($referer, $cp.'/auth/'); - $authRoutes = [ - cp_route('login'), - cp_route('password.request'), - ]; - - if (in_array($referer, $authRoutes)) { - return cp_route('index'); - } - - return Str::contains($referer, '/'.config('statamic.cp.route')) - ? $referer - : cp_route('index'); + return $referredFromCp ? $referer : $cp; } protected function authenticated(Request $request, $user)