ldc-supportweb/app/Http/Middlewares/HandleInertiaRequests.php
2026-05-19 16:47:07 +02:00

59 lines
2.3 KiB
PHP

<?php
namespace App\Http\Middlewares;
use App\Enums\NoticeTypeEnum;
use App\Models\GitlabProject;
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),
],
'gitlabProjects' => [
'viewAny' => Gate::allows('viewAny', GitlabProject::class),
'viewTrash' => Gate::allows('viewTrash', GitlabProject::class),
'create' => Gate::allows('create', GitlabProject::class),
],
],
],
'noticeTypeEnum' => NoticeTypeEnum::toArray(),
];
return array_replace_recursive(
$props,
InertiaSharedRegistry::resolve($request),
);
}
}