added domain verify middleware

This commit is contained in:
abdul-wahab12345 2024-07-01 18:52:27 +00:00
parent 521e3b084c
commit f0e7e09ef8
6 changed files with 74 additions and 12 deletions

View File

@ -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(),
],[

View File

@ -70,20 +70,33 @@ public function showDomain($domain){
public function verifyDomain(Request $request)
{
$domain = $request->input('domain');
$response = $this->mailgunService->verifyDomain($domain);
$result = $this->is_domain_verified($domain);
$state = $response->getDomain()->getState();
if($state == 'unverified'){
return redirect()->route('showDomain',$domain);
}elseif($state == 'active'){
//$this->createRoute($request);
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;
}
}

View File

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

View File

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

View File

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

View File

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