1
0
mirror of https://github.com/invoiceninja/invoiceninja.git synced 2024-11-09 20:52:56 +01:00

Multi-db support

This commit is contained in:
Hillel Coren 2017-05-01 10:19:27 +03:00
parent 479340c07a
commit d5a63ffeef
3 changed files with 29 additions and 2 deletions

View File

@ -16,8 +16,8 @@ class DatabaseLookup
return $next($request);
}
// user's value is set when logging in
if ($guard == 'user') {
// user's value is set when logging in
if (! session('SESSION_USER_DB_SERVER')) {
return redirect('/logout');
}
@ -25,7 +25,7 @@ class DatabaseLookup
if ($token = $request->header('X-Ninja-Token')) {
LookupAccountToken::setServerByField('token', $token);
}
} else {
} elseif ($guard == 'contact') {
if (request()->invitation_key) {
LookupInvitation::setServerByField('invitation_key', request()->invitation_key);
} elseif (request()->contact_key) {

View File

@ -19,4 +19,26 @@ class LookupUser extends LookupModel
'user_id',
];
public static function updateUser($accountKey, $userId, $email)
{
if (! env('MULTI_DB_ENABLED')) {
return;
}
$current = config('database.default');
config(['database.default' => DB_NINJA_LOOKUP]);
$lookupAccount = LookupAccount::whereAccountKey($accountKey)
->firstOrFail();
$lookupUser = LookupUser::whereLookupAccountId($lookupAccount->id)
->whereUserId($userId)
->firstOrFail();
$lookupUser->email = $email;
$lookupUser->save();
config(['database.default' => $current]);
}
}

View File

@ -423,6 +423,11 @@ User::creating(function ($user)
User::updating(function ($user) {
User::onUpdatingUser($user);
$dirty = $user->getDirty();
if (isset($dirty['email'])) {
LookupUser::updateUser($user->account->account_key, $user->id, $user->email);
}
});
User::updated(function ($user) {