getHost(); if (strpos($domain_name, 'invoicing.co') !== false) { $subdomain = explode('.', $domain_name)[0]; $query = [ 'subdomain' => $subdomain, 'portal_mode' => 'subdomain', ]; $company = Company::where($query)->first(); if($company) { if(! $company->client_can_register) abort(400, 'Registration disabled'); session()->put('company_key', $company->company_key); return $next($request); } } $query = [ 'portal_domain' => $request->getSchemeAndHttpHost(), 'portal_mode' => 'domain', ]; if($company = Company::where($query)->first()) { if(! $company->client_can_register) abort(400, 'Registration disabled'); // $request->merge(['key' => $company->company_key]); session()->put('company_key', $company->company_key); return $next($request); } // For self-hosted platforms with multiple companies, resolving is done using company key // if it doesn't resolve using a domain. if ($request->route()->parameter('company_key') && Ninja::isSelfHost()) { $company = Company::where('company_key', $request->company_key)->firstOrFail(); if(! (bool)$company->client_can_register); abort(400, 'Registration disabled'); //$request->merge(['key' => $company->company_key]); session()->put('company_key', $company->company_key); return $next($request); } // As a fallback for self-hosted, it will use default company in the system // if key isn't provided in the url. if (!$request->route()->parameter('company_key') && Ninja::isSelfHost()) { $company = Account::first()->default_company; if(! $company->client_can_register) abort(400, 'Registration disabled'); //$request->merge(['key' => $company->company_key]); session()->put('company_key', $company->company_key); return $next($request); } abort(404, 'ContactRegister Middleware'); } }