mirror of
https://github.com/invoiceninja/invoiceninja.git
synced 2025-07-09 03:14:30 -04:00
Multi-db support
This commit is contained in:
parent
9d560fc24d
commit
3f713d3b12
@ -9,6 +9,7 @@ use App\Ninja\Repositories\AccountRepository;
|
|||||||
use App\Services\PaymentService;
|
use App\Services\PaymentService;
|
||||||
use Illuminate\Console\Command;
|
use Illuminate\Console\Command;
|
||||||
use Carbon;
|
use Carbon;
|
||||||
|
use Symfony\Component\Console\Input\InputOption;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class ChargeRenewalInvoices.
|
* Class ChargeRenewalInvoices.
|
||||||
|
@ -4,6 +4,7 @@ namespace App\Console\Commands;
|
|||||||
|
|
||||||
use DB;
|
use DB;
|
||||||
use Illuminate\Console\Command;
|
use Illuminate\Console\Command;
|
||||||
|
use Symfony\Component\Console\Input\InputOption;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class PruneData.
|
* Class PruneData.
|
||||||
|
@ -5,6 +5,7 @@ namespace App\Console\Commands;
|
|||||||
use App\Models\Document;
|
use App\Models\Document;
|
||||||
use DateTime;
|
use DateTime;
|
||||||
use Illuminate\Console\Command;
|
use Illuminate\Console\Command;
|
||||||
|
use Symfony\Component\Console\Input\InputOption;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class RemoveOrphanedDocuments.
|
* Class RemoveOrphanedDocuments.
|
||||||
|
@ -4,6 +4,7 @@ namespace App\Console\Commands;
|
|||||||
|
|
||||||
use Illuminate\Console\Command;
|
use Illuminate\Console\Command;
|
||||||
use Utils;
|
use Utils;
|
||||||
|
use Symfony\Component\Console\Input\InputOption;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class ResetData.
|
* Class ResetData.
|
||||||
|
@ -9,6 +9,7 @@ use App\Ninja\Repositories\InvoiceRepository;
|
|||||||
use App\Services\PaymentService;
|
use App\Services\PaymentService;
|
||||||
use DateTime;
|
use DateTime;
|
||||||
use Illuminate\Console\Command;
|
use Illuminate\Console\Command;
|
||||||
|
use Symfony\Component\Console\Input\InputOption;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class SendRecurringInvoices.
|
* Class SendRecurringInvoices.
|
||||||
|
@ -7,6 +7,7 @@ use App\Ninja\Mailers\ContactMailer as Mailer;
|
|||||||
use App\Ninja\Repositories\AccountRepository;
|
use App\Ninja\Repositories\AccountRepository;
|
||||||
use App\Ninja\Repositories\InvoiceRepository;
|
use App\Ninja\Repositories\InvoiceRepository;
|
||||||
use Illuminate\Console\Command;
|
use Illuminate\Console\Command;
|
||||||
|
use Symfony\Component\Console\Input\InputOption;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class SendReminders.
|
* Class SendReminders.
|
||||||
|
@ -7,6 +7,7 @@ use App\Ninja\Mailers\ContactMailer as Mailer;
|
|||||||
use App\Ninja\Repositories\AccountRepository;
|
use App\Ninja\Repositories\AccountRepository;
|
||||||
use Illuminate\Console\Command;
|
use Illuminate\Console\Command;
|
||||||
use Utils;
|
use Utils;
|
||||||
|
use Symfony\Component\Console\Input\InputOption;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class SendRenewalInvoices.
|
* Class SendRenewalInvoices.
|
||||||
|
@ -13,7 +13,6 @@ use Illuminate\Foundation\Auth\AuthenticatesAndRegistersUsers;
|
|||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use Session;
|
use Session;
|
||||||
use Utils;
|
use Utils;
|
||||||
use App\Models\LookupUser;
|
|
||||||
|
|
||||||
class AuthController extends Controller
|
class AuthController extends Controller
|
||||||
{
|
{
|
||||||
@ -142,8 +141,6 @@ class AuthController extends Controller
|
|||||||
*/
|
*/
|
||||||
public function postLoginWrapper(Request $request)
|
public function postLoginWrapper(Request $request)
|
||||||
{
|
{
|
||||||
LookupUser::setServerByField('email', $request->input('email'));
|
|
||||||
|
|
||||||
$userId = Auth::check() ? Auth::user()->id : null;
|
$userId = Auth::check() ? Auth::user()->id : null;
|
||||||
$user = User::where('email', '=', $request->input('email'))->first();
|
$user = User::where('email', '=', $request->input('email'))->first();
|
||||||
|
|
||||||
|
@ -7,6 +7,7 @@ use Closure;
|
|||||||
use App\Models\LookupContact;
|
use App\Models\LookupContact;
|
||||||
use App\Models\LookupInvitation;
|
use App\Models\LookupInvitation;
|
||||||
use App\Models\LookupAccountToken;
|
use App\Models\LookupAccountToken;
|
||||||
|
use App\Models\LookupUser;
|
||||||
|
|
||||||
class DatabaseLookup
|
class DatabaseLookup
|
||||||
{
|
{
|
||||||
@ -17,19 +18,18 @@ class DatabaseLookup
|
|||||||
}
|
}
|
||||||
|
|
||||||
if ($guard == 'user') {
|
if ($guard == 'user') {
|
||||||
// user's value is set when logging in
|
if ($email = $request->email) {
|
||||||
if (! session(SESSION_DB_SERVER)) {
|
LookupUser::setServerByField('email', $email);
|
||||||
return redirect('/logout');
|
|
||||||
}
|
}
|
||||||
} elseif ($guard == 'api') {
|
} elseif ($guard == 'api') {
|
||||||
if ($token = $request->header('X-Ninja-Token')) {
|
if ($token = $request->header('X-Ninja-Token')) {
|
||||||
LookupAccountToken::setServerByField('token', $token);
|
LookupAccountToken::setServerByField('token', $token);
|
||||||
}
|
}
|
||||||
} elseif ($guard == 'contact') {
|
} elseif ($guard == 'contact') {
|
||||||
if (request()->invitation_key) {
|
if ($key = request()->invitation_key) {
|
||||||
LookupInvitation::setServerByField('invitation_key', request()->invitation_key);
|
LookupInvitation::setServerByField('invitation_key', $key);
|
||||||
} elseif (request()->contact_key) {
|
} elseif ($key = request()->contact_key) {
|
||||||
LookupContact::setServerByField('contact_key', request()->contact_key);
|
LookupContact::setServerByField('contact_key', $key);
|
||||||
}
|
}
|
||||||
} elseif ($guard == 'postmark') {
|
} elseif ($guard == 'postmark') {
|
||||||
LookupInvitation::setServerByField('message_id', request()->MessageID);
|
LookupInvitation::setServerByField('message_id', request()->MessageID);
|
||||||
|
@ -88,14 +88,17 @@ Route::post('/payment_hook/{accountKey}/{gatewayId}', 'OnlinePaymentController@h
|
|||||||
Route::get('/signup', ['as' => 'signup', 'uses' => 'Auth\AuthController@getRegister']);
|
Route::get('/signup', ['as' => 'signup', 'uses' => 'Auth\AuthController@getRegister']);
|
||||||
Route::post('/signup', ['as' => 'signup', 'uses' => 'Auth\AuthController@postRegister']);
|
Route::post('/signup', ['as' => 'signup', 'uses' => 'Auth\AuthController@postRegister']);
|
||||||
Route::get('/login', ['as' => 'login', 'uses' => 'Auth\AuthController@getLoginWrapper']);
|
Route::get('/login', ['as' => 'login', 'uses' => 'Auth\AuthController@getLoginWrapper']);
|
||||||
Route::post('/login', ['as' => 'login', 'uses' => 'Auth\AuthController@postLoginWrapper']);
|
|
||||||
Route::get('/logout', ['as' => 'logout', 'uses' => 'Auth\AuthController@getLogoutWrapper']);
|
Route::get('/logout', ['as' => 'logout', 'uses' => 'Auth\AuthController@getLogoutWrapper']);
|
||||||
Route::get('/recover_password', ['as' => 'forgot', 'uses' => 'Auth\PasswordController@getEmail']);
|
Route::get('/recover_password', ['as' => 'forgot', 'uses' => 'Auth\PasswordController@getEmail']);
|
||||||
Route::post('/recover_password', ['as' => 'forgot', 'uses' => 'Auth\PasswordController@postEmail']);
|
|
||||||
Route::get('/password/reset/{token}', ['as' => 'forgot', 'uses' => 'Auth\PasswordController@getReset']);
|
Route::get('/password/reset/{token}', ['as' => 'forgot', 'uses' => 'Auth\PasswordController@getReset']);
|
||||||
Route::post('/password/reset', ['as' => 'forgot', 'uses' => 'Auth\PasswordController@postReset']);
|
|
||||||
Route::get('/user/confirm/{code}', 'UserController@confirm');
|
Route::get('/user/confirm/{code}', 'UserController@confirm');
|
||||||
|
|
||||||
|
Route::group(['middleware' => ['lookup:reset']], function () {
|
||||||
|
Route::post('/login', ['as' => 'login', 'uses' => 'Auth\AuthController@postLoginWrapper']);
|
||||||
|
Route::post('/recover_password', ['as' => 'forgot', 'uses' => 'Auth\PasswordController@postEmail']);
|
||||||
|
Route::post('/password/reset', ['as' => 'forgot', 'uses' => 'Auth\PasswordController@postReset']);
|
||||||
|
});
|
||||||
|
|
||||||
// Client auth
|
// Client auth
|
||||||
Route::get('/client/login', ['as' => 'login', 'uses' => 'ClientAuth\AuthController@getLogin']);
|
Route::get('/client/login', ['as' => 'login', 'uses' => 'ClientAuth\AuthController@getLogin']);
|
||||||
Route::post('/client/login', ['as' => 'login', 'uses' => 'ClientAuth\AuthController@postLogin']);
|
Route::post('/client/login', ['as' => 'login', 'uses' => 'ClientAuth\AuthController@postLogin']);
|
||||||
|
@ -30,7 +30,7 @@ class LookupAccount extends LookupModel
|
|||||||
|
|
||||||
$current = config('database.default');
|
$current = config('database.default');
|
||||||
config(['database.default' => DB_NINJA_LOOKUP]);
|
config(['database.default' => DB_NINJA_LOOKUP]);
|
||||||
|
|
||||||
$server = DbServer::whereName($current)->firstOrFail();
|
$server = DbServer::whereName($current)->firstOrFail();
|
||||||
$lookupCompany = LookupCompany::whereDbServerId($server->id)
|
$lookupCompany = LookupCompany::whereDbServerId($server->id)
|
||||||
->whereCompanyId($companyId)->first();
|
->whereCompanyId($companyId)->first();
|
||||||
|
@ -49,7 +49,7 @@ 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-server-1']
|
['name' => 'db-ninja-1']
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user