diff --git a/app/Http/Controllers/Auth/AuthController.php b/app/Http/Controllers/Auth/AuthController.php index efe471557917..c4be024856ea 100644 --- a/app/Http/Controllers/Auth/AuthController.php +++ b/app/Http/Controllers/Auth/AuthController.php @@ -118,7 +118,17 @@ class AuthController extends Controller public function getLoginWrapper() { if (! Utils::isNinja() && ! User::count()) { - return redirect()->to('invoice_now'); + return redirect()->to('/setup'); + } + + if (Utils::isNinja()) { + // make sure the user is on SITE_URL/login to ensure OAuth works + $requestURL = request()->url(); + $loginURL = SITE_URL . '/login'; + $subdomain = Utils::getSubdomain(request()->url()); + if ($requestURL != $loginURL && ! strstr($subdomain, 'webapp-')) { + return redirect()->to($loginURL); + } } return self::getLogin(); diff --git a/app/Libraries/Utils.php b/app/Libraries/Utils.php index 2dfb3366a67b..842620b056e0 100644 --- a/app/Libraries/Utils.php +++ b/app/Libraries/Utils.php @@ -969,10 +969,11 @@ class Utils return $str; } - public static function getSubdomainPlaceholder() + public static function getSubdomain($url) { - $parts = parse_url(SITE_URL); + $parts = parse_url($url); $subdomain = ''; + if (isset($parts['host'])) { $host = explode('.', $parts['host']); if (count($host) > 2) { @@ -983,6 +984,11 @@ class Utils return $subdomain; } + public static function getSubdomainPlaceholder() + { + return static::getSubdomain(SITE_URL); + } + public static function getDomainPlaceholder() { $parts = parse_url(SITE_URL);