From 2e0cd34bf8bd3358f8e8ca76e3598b0e921db669 Mon Sep 17 00:00:00 2001 From: Hillel Coren Date: Sun, 30 Apr 2017 23:07:58 +0300 Subject: [PATCH] Multi-db support --- app/Http/Controllers/Auth/AuthController.php | 2 +- app/Models/LookupUser.php | 16 +++++++++++----- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/app/Http/Controllers/Auth/AuthController.php b/app/Http/Controllers/Auth/AuthController.php index 1126dc7d8bd3..c9c740bed89d 100644 --- a/app/Http/Controllers/Auth/AuthController.php +++ b/app/Http/Controllers/Auth/AuthController.php @@ -142,7 +142,7 @@ class AuthController extends Controller */ public function postLoginWrapper(Request $request) { - LookupUser::loadEmail($request->input('email')); + LookupUser::setServerByEmail($request->input('email')); $userId = Auth::check() ? Auth::user()->id : null; $user = User::where('email', '=', $request->input('email'))->first(); diff --git a/app/Models/LookupUser.php b/app/Models/LookupUser.php index f5c72596025b..665d89a3f2ad 100644 --- a/app/Models/LookupUser.php +++ b/app/Models/LookupUser.php @@ -3,6 +3,7 @@ namespace App\Models; use Eloquent; +use App\Models\User; /** * Class ExpenseCategory. @@ -18,7 +19,7 @@ class LookupUser extends LookupModel 'user_id', ]; - public static function loadEmail($email) + public static function setServerByEmail($email) { if (! env('MULTI_DB_ENABLED')) { return; @@ -28,10 +29,15 @@ class LookupUser extends LookupModel config(['database.default' => DB_NINJA_LOOKUP]); if ($lookupUser = static::whereEmail($email)->first()) { - session(['SESSION_DB_SERVER' => $lookupUser->getDbServer()]); + $server = $lookupUser->getDbServer(); + session(['SESSION_DB_SERVER' => $server]); + config(['database.default' => $server]); + + if (! User::whereEmail($email)->first()) { + abort('Lookedup user not found: ' . $email); + } + } else { + config(['database.default' => $current]); } - - config(['database.default' => $current]); - } }