ldc-supportweb/app/Http/Middlewares/HandleInertiaRequests.php
2026-04-30 15:57:29 +02:00

53 lines
1.9 KiB
PHP

<?php
namespace App\Http\Middlewares;
use App\Enums\NoticeTypeEnum;
use App\Models\InvoiceCompany;
use App\Models\InvoicePackage;
use App\Models\Notice;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Gate;
use Inertia\Middleware;
use Uwil\LaravelCommon\Helpers\InertiaHelper;
use Uwil\LaravelCommon\Support\InertiaSharedRegistry;
class HandleInertiaRequests extends Middleware
{
/**
* Define the props that are shared by default.
*
* @param \Illuminate\Http\Request $request
* @return array<string, mixed>
*/
public function share(Request $request): array
{
$props = [
...InertiaHelper::errorProps(parent::share($request)),
'auth' => [
'policies' => [
'notices' => [
'viewAny' => Gate::allows('viewAny', Notice::class),
'viewTrash' => Gate::allows('viewTrash', Notice::class),
'create' => Gate::allows('create', Notice::class),
],
'invoicePackages' => [
'viewAny' => Gate::allows('viewAny', InvoicePackage::class),
'viewTrash' => Gate::allows('viewTrash', InvoicePackage::class),
'create' => Gate::allows('create', InvoicePackage::class),
],
'invoiceCompanies' => [
'viewAny' => Gate::allows('viewAny', InvoiceCompany::class),
'viewTrash' => Gate::allows('viewTrash', InvoiceCompany::class),
'create' => Gate::allows('create', InvoiceCompany::class),
],
],
],
'noticeTypeEnum' => NoticeTypeEnum::toArray(),
];
return array_replace_recursive(
$props,
InertiaSharedRegistry::resolve($request),
);
}
}