added domain verify middleware
This commit is contained in:
parent
521e3b084c
commit
f0e7e09ef8
|
|
@ -22,9 +22,9 @@ public function storeCompany(Request $request)
|
|||
|
||||
if(Session::has('user_id') || Auth::id()) {
|
||||
|
||||
$messages = [
|
||||
$messages = [
|
||||
'company_domain.unique' => 'The domain has already been registered.',
|
||||
'company_domain.regex' => 'Please enter a valid domain format. e.g (example.com) wihtout https and /'
|
||||
'company_domain.regex' => 'Please enter a valid domain format, e.g., example.com (without https and /)'
|
||||
];
|
||||
|
||||
$this->validate($request, [
|
||||
|
|
@ -32,11 +32,12 @@ public function storeCompany(Request $request)
|
|||
'company_email' => 'required|email',
|
||||
'company_domain' => [
|
||||
'required',
|
||||
'regex:/^([a-zA-Z0-9]+(\.[a-zA-Z0-9]+)+.*)$/',
|
||||
'regex:/^([a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)+)$/', // Updated regex
|
||||
'unique:companies,domain'
|
||||
],
|
||||
], $messages);
|
||||
|
||||
|
||||
$company = Company::updateOrCreate([
|
||||
'user_id' => Session::has('user_id') ? Session::get('user_id') : Auth::id(),
|
||||
],[
|
||||
|
|
|
|||
|
|
@ -70,20 +70,33 @@ public function showDomain($domain){
|
|||
public function verifyDomain(Request $request)
|
||||
{
|
||||
$domain = $request->input('domain');
|
||||
$response = $this->mailgunService->verifyDomain($domain);
|
||||
|
||||
$state = $response->getDomain()->getState();
|
||||
|
||||
if($state == 'unverified'){
|
||||
return redirect()->route('showDomain',$domain);
|
||||
}elseif($state == 'active'){
|
||||
//$this->createRoute($request);
|
||||
$result = $this->is_domain_verified($domain);
|
||||
|
||||
if($result){
|
||||
$email = "kundesone.$domain@mailgun.kundesone.no";
|
||||
$this->createEmail($domain);
|
||||
|
||||
|
||||
return redirect('/dashboard');
|
||||
}else{
|
||||
return redirect()->route('showDomain',$domain);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public function is_domain_verified($domain){
|
||||
|
||||
$response = $this->mailgunService->verifyDomain($domain);
|
||||
|
||||
$state = $response->getDomain()->getState();
|
||||
|
||||
if($state == 'unverified'){
|
||||
return false;
|
||||
}elseif($state == 'active'){
|
||||
//$this->createRoute($request);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -21,6 +21,7 @@ class Kernel extends HttpKernel
|
|||
\Illuminate\Foundation\Http\Middleware\ValidatePostSize::class,
|
||||
\App\Http\Middleware\TrimStrings::class,
|
||||
\Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class,
|
||||
// \App\Http\Middleware\VerifyDomain::class
|
||||
];
|
||||
|
||||
/**
|
||||
|
|
@ -36,6 +37,7 @@ class Kernel extends HttpKernel
|
|||
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
|
||||
\App\Http\Middleware\VerifyCsrfToken::class,
|
||||
\Illuminate\Routing\Middleware\SubstituteBindings::class,
|
||||
//\App\Http\Middleware\VerifyDomain::class,
|
||||
],
|
||||
|
||||
'api' => [
|
||||
|
|
@ -64,5 +66,6 @@ class Kernel extends HttpKernel
|
|||
'signed' => \App\Http\Middleware\ValidateSignature::class,
|
||||
'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
|
||||
'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class,
|
||||
'verifyDomain' => \App\Http\Middleware\VerifyDomain::class,
|
||||
];
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,42 @@
|
|||
<?php
|
||||
|
||||
namespace App\Http\Middleware;
|
||||
|
||||
use Closure;
|
||||
use Illuminate\Http\Request;
|
||||
use Symfony\Component\HttpFoundation\Response;
|
||||
use App\Http\Controllers\Mailgun\MailgunController;
|
||||
|
||||
class VerifyDomain
|
||||
{
|
||||
/**
|
||||
* Handle an incoming request.
|
||||
*
|
||||
* @param \Closure(\Illuminate\Http\Request): (\Symfony\Component\HttpFoundation\Response) $next
|
||||
*/
|
||||
public function handle(Request $request, Closure $next): Response
|
||||
{
|
||||
$companyId = getSelectedCompany();
|
||||
|
||||
if(!$companyId){
|
||||
return false;
|
||||
}
|
||||
|
||||
$company = get_company('id',$companyId);
|
||||
|
||||
if(!$company){
|
||||
return false;
|
||||
}
|
||||
|
||||
$domain = $company->domain;
|
||||
|
||||
$controller = new MailgunController();
|
||||
|
||||
$result = $controller->is_domain_verified($domain);
|
||||
if($result){
|
||||
return $next($request);
|
||||
}else{
|
||||
return redirect()->route('showDomain',$domain);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -38,3 +38,4 @@
|
|||
[30-Jun-2024 03:59:52 UTC] PHP Warning: Module "fileinfo" is already loaded in Unknown on line 0
|
||||
[30-Jun-2024 04:00:06 UTC] PHP Warning: Module "fileinfo" is already loaded in Unknown on line 0
|
||||
[30-Jun-2024 04:30:35 UTC] PHP Warning: Module "fileinfo" is already loaded in Unknown on line 0
|
||||
[01-Jul-2024 18:34:48 UTC] PHP Warning: Module "fileinfo" is already loaded in Unknown on line 0
|
||||
|
|
|
|||
|
|
@ -10,6 +10,8 @@
|
|||
|
||||
use App\Http\Controllers\Mailgun\MailgunController;
|
||||
|
||||
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Web Routes
|
||||
|
|
@ -37,7 +39,7 @@
|
|||
|
||||
Route::post('/verify-domain', [MailgunController::class, 'verifyDomain'])->name('verifyDomain');
|
||||
|
||||
Route::get('/dashboard', [DashboardController::class, 'dashboard'])->name('index');
|
||||
Route::get('/dashboard', [DashboardController::class, 'dashboard'])->name('index')->middleware('verifyDomain');;
|
||||
Route::get('/profile', [DashboardController::class, 'profile'])->name('profile');
|
||||
Route::get('company-info', [CompanyController::class, 'getCompanyInfo'])->name('get.company.info');
|
||||
Route::get('/waiting', [TicketController::class, 'waiting'])->name('waiting');
|
||||
|
|
|
|||
Loading…
Reference in New Issue