mirror of
https://github.com/invoiceninja/invoiceninja.git
synced 2025-07-07 18:14:32 -04:00
Multi-db support
This commit is contained in:
parent
3f713d3b12
commit
5baf12ae26
@ -18,7 +18,9 @@ class DatabaseLookup
|
|||||||
}
|
}
|
||||||
|
|
||||||
if ($guard == 'user') {
|
if ($guard == 'user') {
|
||||||
if ($email = $request->email) {
|
if ($server = session(SESSION_DB_SERVER)) {
|
||||||
|
config(['database.default' => $server]);
|
||||||
|
} elseif ($email = $request->email) {
|
||||||
LookupUser::setServerByField('email', $email);
|
LookupUser::setServerByField('email', $email);
|
||||||
}
|
}
|
||||||
} elseif ($guard == 'api') {
|
} elseif ($guard == 'api') {
|
||||||
|
@ -93,7 +93,7 @@ Route::get('/recover_password', ['as' => 'forgot', 'uses' => 'Auth\PasswordContr
|
|||||||
Route::get('/password/reset/{token}', ['as' => 'forgot', 'uses' => 'Auth\PasswordController@getReset']);
|
Route::get('/password/reset/{token}', ['as' => 'forgot', 'uses' => 'Auth\PasswordController@getReset']);
|
||||||
Route::get('/user/confirm/{code}', 'UserController@confirm');
|
Route::get('/user/confirm/{code}', 'UserController@confirm');
|
||||||
|
|
||||||
Route::group(['middleware' => ['lookup:reset']], function () {
|
Route::group(['middleware' => ['lookup:user']], function () {
|
||||||
Route::post('/login', ['as' => 'login', 'uses' => 'Auth\AuthController@postLoginWrapper']);
|
Route::post('/login', ['as' => 'login', 'uses' => 'Auth\AuthController@postLoginWrapper']);
|
||||||
Route::post('/recover_password', ['as' => 'forgot', 'uses' => 'Auth\PasswordController@postEmail']);
|
Route::post('/recover_password', ['as' => 'forgot', 'uses' => 'Auth\PasswordController@postEmail']);
|
||||||
Route::post('/password/reset', ['as' => 'forgot', 'uses' => 'Auth\PasswordController@postReset']);
|
Route::post('/password/reset', ['as' => 'forgot', 'uses' => 'Auth\PasswordController@postReset']);
|
||||||
|
@ -68,7 +68,7 @@ class LookupModel extends Eloquent
|
|||||||
$isUser = $className == 'App\Models\User';
|
$isUser = $className == 'App\Models\User';
|
||||||
|
|
||||||
// check if we've cached this lookup
|
// check if we've cached this lookup
|
||||||
if ($server = session($key)) {
|
if (env('MULTI_DB_CACHE_ENABLED') && $server = session($key)) {
|
||||||
static::setDbServer($server, $isUser);
|
static::setDbServer($server, $isUser);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -76,9 +76,10 @@ class LookupModel extends Eloquent
|
|||||||
$current = config('database.default');
|
$current = config('database.default');
|
||||||
config(['database.default' => DB_NINJA_LOOKUP]);
|
config(['database.default' => DB_NINJA_LOOKUP]);
|
||||||
|
|
||||||
if ($value && $lookupUser = static::where($field, '=', $value)->first()) {
|
if ($value && $lookupModel = static::where($field, '=', $value)->first()) {
|
||||||
$entity = new $className();
|
$entity = new $className();
|
||||||
$server = $lookupUser->getDbServer();
|
$server = $lookupModel->getDbServer();
|
||||||
|
|
||||||
static::setDbServer($server, $isUser);
|
static::setDbServer($server, $isUser);
|
||||||
|
|
||||||
// check entity is found on the server
|
// check entity is found on the server
|
||||||
|
@ -49,7 +49,8 @@ class AddMultipleDatabaseSupport extends Migration
|
|||||||
Schema::rename('lookup_tokens', 'lookup_account_tokens');
|
Schema::rename('lookup_tokens', 'lookup_account_tokens');
|
||||||
|
|
||||||
DB::table('db_servers')->insert(
|
DB::table('db_servers')->insert(
|
||||||
['name' => 'db-ninja-1']
|
['name' => 'db-ninja-1'],
|
||||||
|
['name' => 'db-ninja-2'],
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user