Multi-db support

This commit is contained in:
Hillel Coren 2017-05-01 15:46:57 +03:00
parent 9d560fc24d
commit 3f713d3b12
12 changed files with 22 additions and 15 deletions

View File

@ -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.

View File

@ -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.

View File

@ -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.

View File

@ -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.

View File

@ -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.

View File

@ -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.

View File

@ -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.

View File

@ -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();

View File

@ -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);

View File

@ -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']);

View File

@ -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();

View File

@ -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']
); );
} }