Files
HRM-System/app/Http/Middleware/ShareGlobalSettings.php
2026-04-13 08:16:56 +08:00

47 lines
1.2 KiB
PHP

<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Http\Request;
use Inertia\Inertia;
use Illuminate\Support\Facades\File;
use Illuminate\Support\Facades\Artisan;
class ShareGlobalSettings
{
/**
* Handle an incoming request.
*/
public function handle(Request $request, Closure $next)
{
// Ensure storage link exists
$this->ensureStorageLink();
// Skip during installation
if (!$request->is('install/*') && !$request->is('update/*') && file_exists(storage_path('installed'))) {
// Share settings with all Inertia responses
Inertia::share([
'globalSettings' => function () {
return settings(); // Use our helper function
}
]);
}
return $next($request);
}
/**
* Ensure storage symlink exists
*/
private function ensureStorageLink()
{
if (!File::exists(public_path('storage'))) {
try {
Artisan::call('storage:link');
} catch (\Exception $e) {
// Silently fail if unable to create link
}
}
}
}