33 lines
812 B
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);
|
|
}
|
|
}
|