Multi-db fixes

This commit is contained in:
Hillel Coren 2017-05-10 12:41:31 +03:00
parent 8de5bfb510
commit 0a847a338d
3 changed files with 16 additions and 6 deletions

View File

@ -22,13 +22,13 @@ class DatabaseLookup
if ($guard == 'user') { if ($guard == 'user') {
if ($code = $request->confirmation_code) { if ($code = $request->confirmation_code) {
LookupUser::setServerByField('confirmation_code', $code); LookupUser::setServerByField('confirmation_code', $code);
} elseif ($server = session(SESSION_DB_SERVER)) { } elseif (session(SESSION_DB_SERVER)) {
config(['database.default' => $server]); // do nothing
$user = Auth::user()->fresh(); } elseif (! Auth::check() && $email = $request->email) {
$user->load('account');
Auth::setUser($user);
} elseif ($email = $request->email) {
LookupUser::setServerByField('email', $email); LookupUser::setServerByField('email', $email);
} else {
Auth::logout();
return redirect('/login');
} }
} elseif ($guard == 'api') { } elseif ($guard == 'api') {
if ($token = $request->header('X-Ninja-Token')) { if ($token = $request->header('X-Ninja-Token')) {
@ -41,6 +41,9 @@ class DatabaseLookup
LookupInvitation::setServerByField('invitation_key', $key); LookupInvitation::setServerByField('invitation_key', $key);
} elseif ($key = request()->contact_key ?: session('contact_key')) { } elseif ($key = request()->contact_key ?: session('contact_key')) {
LookupContact::setServerByField('contact_key', $key); LookupContact::setServerByField('contact_key', $key);
} else {
Auth::logout();
return redirect('/client/sessionexpired');
} }
} elseif ($guard == 'postmark') { } elseif ($guard == 'postmark') {
LookupInvitation::setServerByField('message_id', request()->MessageID); LookupInvitation::setServerByField('message_id', request()->MessageID);

View File

@ -66,6 +66,12 @@ class StartupCheck
} }
} }
if (env('MULTI_DB_ENABLED')) {
if ($server = session(SESSION_DB_SERVER)) {
config(['database.default' => $server]);
}
}
// Check the application is up to date and for any news feed messages // Check the application is up to date and for any news feed messages
if (Auth::check()) { if (Auth::check()) {
$count = Session::get(SESSION_COUNTER, 0); $count = Session::get(SESSION_COUNTER, 0);

View File

@ -55,5 +55,6 @@ class HandleUserSignedUp
} }
session([SESSION_COUNTER => -1]); session([SESSION_COUNTER => -1]);
session([SESSION_DB_SERVER => config('database.default')]);
} }
} }