Skip to content

Commit

Permalink
Refactor client portal authentication
Browse files Browse the repository at this point in the history
  • Loading branch information
turbo124 committed Dec 9, 2021
1 parent de0bebc commit d2a929b
Show file tree
Hide file tree
Showing 9 changed files with 54 additions and 39 deletions.
19 changes: 9 additions & 10 deletions app/Http/Controllers/Auth/ContactForgotPasswordController.php
Original file line number Diff line number Diff line change
Expand Up @@ -58,15 +58,14 @@ public function __construct()
*/
public function showLinkRequestForm(Request $request)
{
// $account_id = $request->has('account_id') ? $request->get('account_id') : 1;
// $account = Account::find($account_id);

$account = false;

if(Ninja::isHosted() && $request->has('company_key'))
if(Ninja::isHosted() && $request->session()->has('company_key'))
{
MultiDB::findAndSetDbByCompanyKey($request->input('company_key'));
$company = Company::where('company_key', $request->input('company_key'))->first();
$account = $company->first();
MultiDB::findAndSetDbByCompanyKey($request->session()->get('company_key'));
$company = Company::where('company_key', $request->session()->get('company_key'))->first();
$account = $company->account;
}

if(!$account){
Expand Down Expand Up @@ -94,13 +93,13 @@ public function broker()

public function sendResetLinkEmail(ContactPasswordResetRequest $request)
{
if(Ninja::isHosted() && $request->has('company_key'))
MultiDB::findAndSetDbByCompanyKey($request->input('company_key'));

if(Ninja::isHosted() && $request->session()->has('company_key'))
MultiDB::findAndSetDbByCompanyKey($request->session()->get('company_key'));

$this->validateEmail($request);

$company = Company::where('company_key', $request->input('company_key'))->first();
$company = Company::where('company_key', $request->session()->get('company_key'))->first();
$contact = ClientContact::where(['company_id' => $company->id, 'email' => $request->input('email')])->first();

$response = false;
Expand Down
8 changes: 4 additions & 4 deletions app/Http/Controllers/Auth/ContactLoginController.php
Original file line number Diff line number Diff line change
Expand Up @@ -40,8 +40,8 @@ public function showLoginForm(Request $request)
$company = false;
$account = false;

if($request->has('company_key')){
MultiDB::findAndSetDbByCompanyKey($request->input('company_key'));
if($request->session()->has('company_key')){
MultiDB::findAndSetDbByCompanyKey($request->session()->get('company_key'));
$company = Company::where('company_key', $request->input('company_key'))->first();
}

Expand Down Expand Up @@ -80,8 +80,8 @@ public function login(Request $request)
{
Auth::shouldUse('contact');

if(Ninja::isHosted() && $request->has('company_key'))
MultiDB::findAndSetDbByCompanyKey($request->input('company_key'));
if(Ninja::isHosted() && $request->session()->has('company_key'))
MultiDB::findAndSetDbByCompanyKey($request->session()->get('company_key'));

$this->validateLogin($request);
// If the class is using the ThrottlesLogins trait, we can automatically throttle
Expand Down
2 changes: 1 addition & 1 deletion app/Http/Controllers/Auth/ContactRegisterController.php
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ public function __construct()

public function showRegisterForm(string $company_key = '')
{
$key = request()->has('key') ? request('key') : $company_key;
$key = request()->session()->has('key') ? request()->session()->get('key') : $company_key;

$company = Company::where('company_key', $key)->firstOrFail();

Expand Down
31 changes: 22 additions & 9 deletions app/Http/Controllers/Auth/ContactResetPasswordController.php
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
use App\Libraries\MultiDB;
use App\Models\Account;
use App\Models\ClientContact;
use App\Models\Company;
use Illuminate\Auth\Events\PasswordReset;
use Illuminate\Contracts\View\Factory;
use Illuminate\Foundation\Auth\ResetsPasswords;
Expand Down Expand Up @@ -69,31 +70,43 @@ public function __construct()
public function showResetForm(Request $request, $token = null)
{

if($request->has('company_key')){
MultiDB::findAndSetDbByCompanyKey($request->input('company_key'));
$company = Company::where('company_key', $request->input('company_key'))->first();
if($request->session()->has('company_key')){
MultiDB::findAndSetDbByCompanyKey($request->session()->get('company_key'));
$company = Company::where('company_key', $request->session()->get('company_key'))->first();
$db = $company->db;
$account = $company->account;
}
else {

$account_id = $request->has('account_id') ? $request->get('account_id') : 1;
$account = Account::find($account_id);
$db = $account->companies->first()->db;
$company = $account->companies->first();
$account_key = $request->session()->has('account_key') ? $request->session()->get('account_key') : false;

if($account_key){

MultiDB::findAndSetDbByAccountKey($account_key);
$account = Account::where('key', $account_key)->first();
$db = $account->companies->first()->db;
$company = $account->companies->first();
}
else{

$account = Account::first();
$db = $account->companies->first()->db;
$company = $account->companies->first();
}

}


return $this->render('auth.passwords.reset')->with(
['token' => $token, 'email' => $request->email, 'account' => $account, 'db' => $db, 'company' => $company]
);

}

public function reset(Request $request)
{
if($request->has('company_key'))
MultiDB::findAndSetDbByCompanyKey($request->input('company_key'));
if($request->session()->has('company_key'))
MultiDB::findAndSetDbByCompanyKey($request->session()->get('company_key'));

$request->validate($this->rules(), $this->validationErrorMessages());

Expand Down
9 changes: 5 additions & 4 deletions app/Http/Controllers/Auth/ResetPasswordController.php
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,9 @@
namespace App\Http\Controllers\Auth;

use App\Http\Controllers\Controller;
use App\Libraries\MultiDB;
use App\Models\Account;
use App\Models\Company;
use Illuminate\Foundation\Auth\ResetsPasswords;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\RedirectResponse;
Expand Down Expand Up @@ -53,10 +55,9 @@ public function __construct()

public function showResetForm(Request $request, $token = null)
{
// $account_id = $request->get('account_id');
// $account = Account::find($account_id);
MultiDB::findAndSetDbByCompanyKey($request->input('company_key'));
$company = Company::where('company_key', $request->input('company_key'))->first();

MultiDB::findAndSetDbByCompanyKey($request->session()->get('company_key'));
$company = Company::where('company_key', $request->session()->get('company_key'))->first();
$account = $company->account;

return $this->render('auth.passwords.reset', ['root' => 'themes', 'token' => $token, 'account' => $account]);
Expand Down
2 changes: 0 additions & 2 deletions app/Http/Controllers/ClientPortal/InvoiceController.php
Original file line number Diff line number Diff line change
Expand Up @@ -42,8 +42,6 @@ class InvoiceController extends Controller
*/
public function index(ShowInvoicesRequest $request)
{
// $request->request->remove('account_id');
// $request->request->remove('company_key');

return $this->render('invoices.index');
}
Expand Down
2 changes: 1 addition & 1 deletion app/Http/Middleware/ContactAccount.php
Original file line number Diff line number Diff line change
Expand Up @@ -32,8 +32,8 @@ public function handle($request, Closure $next)
if(!Ninja::isHosted()) {

$account = Account::first();
$request->merge(['account_id' => $account->id, 'account_key' => $account->key]);

session()->put('account_key', $account->key);
}

return $next($request);
Expand Down
12 changes: 8 additions & 4 deletions app/Http/Middleware/ContactRegister.php
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,8 @@ public function handle($request, Closure $next)
if(! $company->client_can_register)
abort(400, 'Registration disabled');

$request->merge(['key' => $company->company_key]);
// $request->merge(['key' => $company->company_key]);
session()->put('key', $company->company_key);

return $next($request);
}
Expand All @@ -55,7 +56,8 @@ public function handle($request, Closure $next)
if(! $company->client_can_register)
abort(400, 'Registration disabled');

$request->merge(['key' => $company->company_key]);
// $request->merge(['key' => $company->company_key]);
session()->put('key', $company->company_key);

return $next($request);
}
Expand All @@ -69,7 +71,8 @@ public function handle($request, Closure $next)
if(! (bool)$company->client_can_register);
abort(400, 'Registration disabled');

$request->merge(['key' => $company->company_key]);
//$request->merge(['key' => $company->company_key]);
session()->put('key', $company->company_key);

return $next($request);
}
Expand All @@ -82,7 +85,8 @@ public function handle($request, Closure $next)
if(! $company->client_can_register)
abort(400, 'Registration disabled');

$request->merge(['key' => $company->company_key]);
//$request->merge(['key' => $company->company_key]);
session()->put('key', $company->company_key);

return $next($request);
}
Expand Down
8 changes: 4 additions & 4 deletions app/Http/Middleware/SetDomainNameDb.php
Original file line number Diff line number Diff line change
Expand Up @@ -50,8 +50,8 @@ public function handle($request, Closure $next)
];

if($company = MultiDB::findAndSetDbByDomain($query)){
$request->merge(['company_key' => $company->company_key]);
// $request->merge(['account_id' => $company->account_id, 'company_key' => $company->company_key]);
//$request->merge(['company_key' => $company->company_key]);
session()->put('company_key', $company->company_key);
}
else
{
Expand All @@ -73,8 +73,8 @@ public function handle($request, Closure $next)
];

if($company = MultiDB::findAndSetDbByDomain($query)){
$request->merge(['company_key' => $company->company_key]);
//$request->merge(['account_id' => $company->account_id, 'company_key' => $company->company_key]);
//$request->merge(['company_key' => $company->company_key]);
session()->put('company_key', $company->company_key);
}
else
{
Expand Down

0 comments on commit d2a929b

Please sign in to comment.