Fixes for contact registration

This commit is contained in:
David Bomba 2022-03-19 21:21:36 +11:00
parent 746dc07aa0
commit 3ac72b27cf
4 changed files with 34 additions and 16 deletions

View File

@ -18,12 +18,15 @@ use App\Http\Requests\ClientPortal\RegisterRequest;
use App\Models\Client; use App\Models\Client;
use App\Models\Company; use App\Models\Company;
use App\Utils\Ninja; use App\Utils\Ninja;
use App\Utils\Traits\GeneratesCounter;
use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Hash; use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\App; use Illuminate\Support\Facades\App;
class ContactRegisterController extends Controller class ContactRegisterController extends Controller
{ {
use GeneratesCounter;
public function __construct() public function __construct()
{ {
$this->middleware(['guest']); $this->middleware(['guest']);
@ -61,6 +64,16 @@ class ContactRegisterController extends Controller
$client->fill($data); $client->fill($data);
$client->save(); $client->save();
$client->number = $this->getNextClientNumber($client);
$client->save();
if(!$client->country_id && strlen($client->company->settings->country_id) > 1){
$client->update(['country_id' => $client->company->settings->country_id]);
}
$this->getClientContact($data, $client);
return $client; return $client;
} }

View File

@ -44,30 +44,36 @@ class ContactRegister
} }
$query = [ if(Ninja::isHosted())
'portal_domain' => $request->getSchemeAndHttpHost(),
'portal_mode' => 'domain',
];
if($company = Company::where($query)->first())
{ {
$query = [
'portal_domain' => $request->getSchemeAndHttpHost(),
'portal_mode' => 'domain',
];
if(! $company->client_can_register) if($company = Company::where($query)->first())
abort(400, 'Registration disabled'); {
// $request->merge(['key' => $company->company_key]); if(! $company->client_can_register)
session()->put('company_key', $company->company_key); abort(400, 'Registration disabled');
// $request->merge(['key' => $company->company_key]);
session()->put('company_key', $company->company_key);
return $next($request);
}
return $next($request);
} }
// For self-hosted platforms with multiple companies, resolving is done using company key // For self-hosted platforms with multiple companies, resolving is done using company key
// if it doesn't resolve using a domain. // if it doesn't resolve using a domain.
if ($request->route()->parameter('company_key') && Ninja::isSelfHost()) {
if ($request->company_key && Ninja::isSelfHost()) {
$company = Company::where('company_key', $request->company_key)->firstOrFail(); $company = Company::where('company_key', $request->company_key)->firstOrFail();
if(! (bool)$company->client_can_register); if(! (bool)$company->client_can_register)
abort(400, 'Registration disabled'); abort(400, 'Registration disabled');
//$request->merge(['key' => $company->company_key]); //$request->merge(['key' => $company->company_key]);

View File

@ -153,7 +153,7 @@ class GoCardlessPaymentDriver extends BaseDriver
'gateway_type_id' => GatewayType::BANK_TRANSFER, 'gateway_type_id' => GatewayType::BANK_TRANSFER,
]; ];
$payment = $this->createPayment($data, Payment::STATUS_COMPLETED); $payment = $this->createPayment($data, Payment::STATUS_PENDING);
SystemLogger::dispatch( SystemLogger::dispatch(
['response' => $payment, 'data' => $data], ['response' => $payment, 'data' => $data],
@ -242,7 +242,6 @@ class GoCardlessPaymentDriver extends BaseDriver
} }
foreach ($request->events as $event) { foreach ($request->events as $event) {
if ($event['action'] === 'confirmed') { if ($event['action'] === 'confirmed') {
$payment = Payment::query() $payment = Payment::query()

View File

@ -40,7 +40,7 @@
class="input w-full" class="input w-full"
type="email" type="email"
name="{{ $field['key'] }}" name="{{ $field['key'] }}"
value="{{ old($field['key']) }}" value=""
{{ $field['required'] ? 'required' : '' }} /> {{ $field['required'] ? 'required' : '' }} />
@elseif($field['key'] === 'password') @elseif($field['key'] === 'password')
<input <input