From 073f30ebcef371c280cdec023876d6d11eeff3a0 Mon Sep 17 00:00:00 2001 From: Mason Curry Date: Mon, 9 Mar 2026 16:25:04 -0500 Subject: [PATCH] feat: optimize middleware --- src/Http/Middleware/CP/BootPreferences.php | 4 ++++ src/Http/Middleware/CP/BootUtilities.php | 4 ++++ src/Http/Middleware/CP/ContactOutpost.php | 4 ++++ src/Http/Middleware/CP/CountUsers.php | 4 ++++ .../CP/HandleAuthenticatedInertiaRequests.php | 4 ++++ src/Http/Middleware/CP/HandleInertiaRequests.php | 10 ++++++++++ src/Http/Middleware/DeleteTemporaryFileUploads.php | 4 ++++ .../Middleware/RedirectIfTwoFactorSetupIncomplete.php | 4 ++++ 8 files changed, 38 insertions(+) diff --git a/src/Http/Middleware/CP/BootPreferences.php b/src/Http/Middleware/CP/BootPreferences.php index a02d7dab2c0..c0fbd381d3d 100644 --- a/src/Http/Middleware/CP/BootPreferences.php +++ b/src/Http/Middleware/CP/BootPreferences.php @@ -9,6 +9,10 @@ class BootPreferences { public function handle($request, Closure $next) { + if (! $request->inertia() && $request->ajax()) { + return $next($request); + } + Preference::boot(); return $next($request); diff --git a/src/Http/Middleware/CP/BootUtilities.php b/src/Http/Middleware/CP/BootUtilities.php index 0307fa2ea8f..1b0e228ee93 100644 --- a/src/Http/Middleware/CP/BootUtilities.php +++ b/src/Http/Middleware/CP/BootUtilities.php @@ -9,6 +9,10 @@ class BootUtilities { public function handle($request, Closure $next) { + if (! $request->inertia() && $request->ajax()) { + return $next($request); + } + Utility::boot(); return $next($request); diff --git a/src/Http/Middleware/CP/ContactOutpost.php b/src/Http/Middleware/CP/ContactOutpost.php index 33c7d1f4f71..01bb32050a9 100644 --- a/src/Http/Middleware/CP/ContactOutpost.php +++ b/src/Http/Middleware/CP/ContactOutpost.php @@ -16,6 +16,10 @@ public function __construct(Outpost $outpost) public function handle($request, Closure $next) { + if (! $request->inertia() && $request->ajax()) { + return $next($request); + } + $this->outpost->radio(); return $next($request); diff --git a/src/Http/Middleware/CP/CountUsers.php b/src/Http/Middleware/CP/CountUsers.php index 65fd2a30fa1..473bae56485 100644 --- a/src/Http/Middleware/CP/CountUsers.php +++ b/src/Http/Middleware/CP/CountUsers.php @@ -11,6 +11,10 @@ class CountUsers { public function handle($request, Closure $next, $guard = null) { + if (! $request->inertia() && $request->ajax()) { + return $next($request); + } + if (! Statamic::pro() && User::count() > 1) { throw new StatamicProRequiredException('Statamic Pro is required for multiple users.'); } diff --git a/src/Http/Middleware/CP/HandleAuthenticatedInertiaRequests.php b/src/Http/Middleware/CP/HandleAuthenticatedInertiaRequests.php index ba832c8b8f4..6458a14d39c 100644 --- a/src/Http/Middleware/CP/HandleAuthenticatedInertiaRequests.php +++ b/src/Http/Middleware/CP/HandleAuthenticatedInertiaRequests.php @@ -19,6 +19,10 @@ class HandleAuthenticatedInertiaRequests { public function handle(Request $request, Closure $next) { + if (! $request->inertia() && $request->ajax()) { + return $next($request); + } + Inertia::share($this->share($request)); return $next($request); diff --git a/src/Http/Middleware/CP/HandleInertiaRequests.php b/src/Http/Middleware/CP/HandleInertiaRequests.php index 5d6f0f3ce44..780d8ed6947 100644 --- a/src/Http/Middleware/CP/HandleInertiaRequests.php +++ b/src/Http/Middleware/CP/HandleInertiaRequests.php @@ -2,6 +2,7 @@ namespace Statamic\Http\Middleware\CP; +use Closure; use Illuminate\Http\Request; use Inertia\Middleware; use Statamic\CP\Toasts\Manager; @@ -21,6 +22,15 @@ public function __construct(private Manager $toasts) // } + public function handle(Request $request, Closure $next) + { + if (! $request->inertia() && $request->ajax()) { + return $next($request); + } + + return parent::handle($request, $next); + } + public function share(Request $request): array { return array_filter([ diff --git a/src/Http/Middleware/DeleteTemporaryFileUploads.php b/src/Http/Middleware/DeleteTemporaryFileUploads.php index 50e18b07347..ca5f30b6830 100644 --- a/src/Http/Middleware/DeleteTemporaryFileUploads.php +++ b/src/Http/Middleware/DeleteTemporaryFileUploads.php @@ -9,6 +9,10 @@ class DeleteTemporaryFileUploads { public function handle($request, Closure $next) { + if (! $request->inertia() && $request->ajax()) { + return $next($request); + } + $lottery = [2, 100]; if (random_int(1, $lottery[1]) <= $lottery[0]) { diff --git a/src/Http/Middleware/RedirectIfTwoFactorSetupIncomplete.php b/src/Http/Middleware/RedirectIfTwoFactorSetupIncomplete.php index 26923972888..1cd2cd5faeb 100644 --- a/src/Http/Middleware/RedirectIfTwoFactorSetupIncomplete.php +++ b/src/Http/Middleware/RedirectIfTwoFactorSetupIncomplete.php @@ -10,6 +10,10 @@ class RedirectIfTwoFactorSetupIncomplete { public function handle(Request $request, Closure $next) { + if (! $request->inertia() && $request->ajax()) { + return $next($request); + } + if ( ($user = User::fromUser($request->user())) && $user->isTwoFactorAuthenticationRequired()