netgescon-day0/app/Http/Controllers/Filament/ImportInboxController.php

33 lines
812 B
PHP

<?php
namespace App\Http\Controllers\Filament;
use App\Models\User;
use Illuminate\Http\Request;
use Illuminate\Routing\Controller;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Storage;
class ImportInboxController extends Controller
{
public function download(Request $request)
{
$user = Auth::user();
if (! $user instanceof User || ! $user->hasAnyRole(['super-admin', 'admin'])) {
abort(403);
}
$path = (string) $request->query('path', '');
$path = trim($path);
if ($path === '' || ! str_starts_with($path, 'import/inbox/')) {
abort(404);
}
if (! Storage::disk('local')->exists($path)) {
abort(404);
}
return Storage::disk('local')->download($path);
}
}