From f8a299caee677bbbd10ac912856176a65b9f7e95 Mon Sep 17 00:00:00 2001 From: Dan Brown Date: Sun, 21 Aug 2016 14:49:40 +0100 Subject: [PATCH] Fixed login 'intended' redirect for custom urls. Also changed social account detach wording. --- app/Http/Controllers/Auth/AuthController.php | 4 +++- app/Services/SocialAuthService.php | 2 +- app/helpers.php | 14 +++++++++++--- 3 files changed, 15 insertions(+), 5 deletions(-) diff --git a/app/Http/Controllers/Auth/AuthController.php b/app/Http/Controllers/Auth/AuthController.php index 2cbc047ce..f2d3b2741 100644 --- a/app/Http/Controllers/Auth/AuthController.php +++ b/app/Http/Controllers/Auth/AuthController.php @@ -145,7 +145,9 @@ class AuthController extends Controller auth()->login($user); } - return redirect()->intended($this->redirectPath()); + $path = session()->pull('url.intended', '/'); + $path = baseUrl($path, true); + return redirect($path); } /** diff --git a/app/Services/SocialAuthService.php b/app/Services/SocialAuthService.php index 4b99df789..7e1bd4246 100644 --- a/app/Services/SocialAuthService.php +++ b/app/Services/SocialAuthService.php @@ -215,7 +215,7 @@ class SocialAuthService { session(); auth()->user()->socialAccounts()->where('driver', '=', $socialDriver)->delete(); - \Session::flash('success', $socialDriver . ' account successfully detached'); + session()->flash('success', title_case($socialDriver) . ' account successfully detached'); return redirect(auth()->user()->getEditUrl()); } diff --git a/app/helpers.php b/app/helpers.php index 541f23fbe..e4f9b1b10 100644 --- a/app/helpers.php +++ b/app/helpers.php @@ -64,13 +64,21 @@ function setting($key, $default = false) /** * Helper to create url's relative to the applications root path. - * @param $path + * @param string $path + * @param bool $forceAppDomain * @return string */ -function baseUrl($path) +function baseUrl($path, $forceAppDomain = false) { - if (strpos($path, 'http') === 0) return $path; + $isFullUrl = strpos($path, 'http') === 0; + if ($isFullUrl && !$forceAppDomain) return $path; $path = trim($path, '/'); + + if ($isFullUrl && $forceAppDomain) { + $explodedPath = explode('/', $path); + $path = implode('/', array_splice($explodedPath, 3)); + } + return rtrim(config('app.url'), '/') . '/' . $path; }