ldc-supportweb/app/Http/Middlewares/HandleInertiaRequests.php

48 lines
1.5 KiB
PHP
Raw Normal View History

<?php
namespace App\Http\Middlewares;
2026-04-30 14:41:56 +02:00
use App\Enums\NoticeTypeEnum;
use App\Models\InvoicePackage;
2026-04-30 14:41:56 +02:00
use App\Models\Notice;
use Illuminate\Http\Request;
2026-04-30 14:41:56 +02:00
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)),
2026-04-30 14:41:56 +02:00
'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),
],
],
2026-04-30 14:41:56 +02:00
],
'noticeTypeEnum' => NoticeTypeEnum::toArray(),
];
return array_replace_recursive(
$props,
InertiaSharedRegistry::resolve($request),
);
}
}