File: /var/www/ipsremont-demo/app/Http/Controllers/ReportingController.php
<?php
namespace App\Http\Controllers;
use App\Helpers\UserHelper;
use App\Models\Permission;
use App\Repository\Repair\RepairRepository;
use App\User;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Response;
class ReportingController extends Controller
{
/** @var string */
protected string $permission = Permission::repairs;
public function manager()
{
$user = UserHelper::getUser();
if (!$user->isManager()) {
return redirect()->route('home');
}
$documents = RepairRepository::getReportsDocuments($user);
return view('repairs.manager_reporting', compact('documents'));
}
public function download(string $name)
{
/** @var User $user */
$user = Auth::user();
if ($user->isService()) {
$documents = RepairRepository::getReportsDocuments();
$documentsNames = array_column($documents, 'name');
if (!in_array($name, $documentsNames)) {
return redirect()->route('home');
}
}
$filePath = public_path('storage/reports') . '/' . $name;
if (!file_exists($filePath)) {
return redirect()->route('home');
}
return Response::download($filePath);
}
}