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()) {
|
if(Session::has('user_id') || Auth::id()) {
|
||||||
|
|
||||||
$messages = [
|
$messages = [
|
||||||
'company_domain.unique' => 'The domain has already been registered.',
|
'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, [
|
$this->validate($request, [
|
||||||
|
|
@ -32,11 +32,12 @@ public function storeCompany(Request $request)
|
||||||
'company_email' => 'required|email',
|
'company_email' => 'required|email',
|
||||||
'company_domain' => [
|
'company_domain' => [
|
||||||
'required',
|
'required',
|
||||||
'regex:/^([a-zA-Z0-9]+(\.[a-zA-Z0-9]+)+.*)$/',
|
'regex:/^([a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)+)$/', // Updated regex
|
||||||
'unique:companies,domain'
|
'unique:companies,domain'
|
||||||
],
|
],
|
||||||
], $messages);
|
], $messages);
|
||||||
|
|
||||||
|
|
||||||
$company = Company::updateOrCreate([
|
$company = Company::updateOrCreate([
|
||||||
'user_id' => Session::has('user_id') ? Session::get('user_id') : Auth::id(),
|
'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)
|
public function verifyDomain(Request $request)
|
||||||
{
|
{
|
||||||
$domain = $request->input('domain');
|
$domain = $request->input('domain');
|
||||||
$response = $this->mailgunService->verifyDomain($domain);
|
|
||||||
|
$result = $this->is_domain_verified($domain);
|
||||||
|
|
||||||
$state = $response->getDomain()->getState();
|
if($result){
|
||||||
|
|
||||||
if($state == 'unverified'){
|
|
||||||
return redirect()->route('showDomain',$domain);
|
|
||||||
}elseif($state == 'active'){
|
|
||||||
//$this->createRoute($request);
|
|
||||||
|
|
||||||
$email = "kundesone.$domain@mailgun.kundesone.no";
|
$email = "kundesone.$domain@mailgun.kundesone.no";
|
||||||
$this->createEmail($domain);
|
$this->createEmail($domain);
|
||||||
|
|
||||||
|
|
||||||
return redirect('/dashboard');
|
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,
|
\Illuminate\Foundation\Http\Middleware\ValidatePostSize::class,
|
||||||
\App\Http\Middleware\TrimStrings::class,
|
\App\Http\Middleware\TrimStrings::class,
|
||||||
\Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::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,
|
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
|
||||||
\App\Http\Middleware\VerifyCsrfToken::class,
|
\App\Http\Middleware\VerifyCsrfToken::class,
|
||||||
\Illuminate\Routing\Middleware\SubstituteBindings::class,
|
\Illuminate\Routing\Middleware\SubstituteBindings::class,
|
||||||
|
//\App\Http\Middleware\VerifyDomain::class,
|
||||||
],
|
],
|
||||||
|
|
||||||
'api' => [
|
'api' => [
|
||||||
|
|
@ -64,5 +66,6 @@ class Kernel extends HttpKernel
|
||||||
'signed' => \App\Http\Middleware\ValidateSignature::class,
|
'signed' => \App\Http\Middleware\ValidateSignature::class,
|
||||||
'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
|
'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
|
||||||
'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::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 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: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
|
[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;
|
use App\Http\Controllers\Mailgun\MailgunController;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|--------------------------------------------------------------------------
|
|--------------------------------------------------------------------------
|
||||||
| Web Routes
|
| Web Routes
|
||||||
|
|
@ -37,7 +39,7 @@
|
||||||
|
|
||||||
Route::post('/verify-domain', [MailgunController::class, 'verifyDomain'])->name('verifyDomain');
|
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('/profile', [DashboardController::class, 'profile'])->name('profile');
|
||||||
Route::get('company-info', [CompanyController::class, 'getCompanyInfo'])->name('get.company.info');
|
Route::get('company-info', [CompanyController::class, 'getCompanyInfo'])->name('get.company.info');
|
||||||
Route::get('/waiting', [TicketController::class, 'waiting'])->name('waiting');
|
Route::get('/waiting', [TicketController::class, 'waiting'])->name('waiting');
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue