From 89dd5e1db7df0e7209292ecc1e6e4a653833efcd Mon Sep 17 00:00:00 2001 From: Alexis Gousseau Date: Tue, 19 May 2026 16:43:41 +0200 Subject: [PATCH] fix: :art: delete HandleInertiaRequests and define new props to share in the AppServiceProvider --- .../Middlewares/HandleInertiaRequests.php | 65 ------------------- app/Providers/AppServiceProvider.php | 36 ++++++++++ bootstrap/app.php | 2 +- 3 files changed, 37 insertions(+), 66 deletions(-) delete mode 100644 app/Http/Middlewares/HandleInertiaRequests.php diff --git a/app/Http/Middlewares/HandleInertiaRequests.php b/app/Http/Middlewares/HandleInertiaRequests.php deleted file mode 100644 index b5d73f1..0000000 --- a/app/Http/Middlewares/HandleInertiaRequests.php +++ /dev/null @@ -1,65 +0,0 @@ - - */ - 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), - ], - 'sites' => [ - 'viewAny' => Gate::allows('viewAny', Site::class), - 'viewTrash' => Gate::allows('viewTrash', Site::class), - 'create' => Gate::allows('create', Site::class), - ], - ], - ], - 'noticeTypeEnum' => NoticeTypeEnum::toArray(), - ]; - return array_replace_recursive( - $props, - InertiaSharedRegistry::resolve($request), - ); - } -} diff --git a/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php index 81571dc..0752f48 100644 --- a/app/Providers/AppServiceProvider.php +++ b/app/Providers/AppServiceProvider.php @@ -2,8 +2,16 @@ namespace App\Providers; +use App\Enums\NoticeTypeEnum; +use App\Models\GitlabProject; +use App\Models\InvoiceCompany; +use App\Models\InvoicePackage; +use App\Models\Notice; +use App\Models\Site; +use Illuminate\Support\Facades\Gate; use Illuminate\Support\ServiceProvider; use Uwil\LaravelBackend\Support\UserRoleRegistry; +use Uwil\LaravelCommon\Support\InertiaSharedRegistry; class AppServiceProvider extends ServiceProvider { @@ -18,5 +26,33 @@ class AppServiceProvider extends ServiceProvider UserRoleRegistry::add(3, 'project-manager', trans('enums.user-role.project-manager')); UserRoleRegistry::add(4, 'developper', trans('enums.user-role.developper')); UserRoleRegistry::add(5, 'client', trans('enums.user-role.client')); + + // Set new props to share. + InertiaSharedRegistry::add('noticeTypeEnum', fn () => NoticeTypeEnum::toArray()); + InertiaSharedRegistry::add('auth.policies.notices', fn () => [ + 'viewAny' => Gate::allows('viewAny', Notice::class), + 'viewTrash' => Gate::allows('viewTrash', Notice::class), + 'create' => Gate::allows('create', Notice::class), + ]); + InertiaSharedRegistry::add('auth.policies.invoicePackages', fn () => [ + 'viewAny' => Gate::allows('viewAny', InvoicePackage::class), + 'viewTrash' => Gate::allows('viewTrash', InvoicePackage::class), + 'create' => Gate::allows('create', InvoicePackage::class), + ]); + InertiaSharedRegistry::add('auth.policies.invoiceCompanies', fn () => [ + 'viewAny' => Gate::allows('viewAny', InvoiceCompany::class), + 'viewTrash' => Gate::allows('viewTrash', InvoiceCompany::class), + 'create' => Gate::allows('create', InvoiceCompany::class), + ]); + InertiaSharedRegistry::add('auth.policies.gitlabProjects', fn () => [ + 'viewAny' => Gate::allows('viewAny', GitlabProject::class), + 'viewTrash' => Gate::allows('viewTrash', GitlabProject::class), + 'create' => Gate::allows('create', GitlabProject::class), + ]); + InertiaSharedRegistry::add('auth.policies.sites', fn () => [ + 'viewAny' => Gate::allows('viewAny', Site::class), + 'viewTrash' => Gate::allows('viewTrash', Site::class), + 'create' => Gate::allows('create', Site::class), + ]); } } diff --git a/bootstrap/app.php b/bootstrap/app.php index 7cf5cbe..d5bb2a9 100644 --- a/bootstrap/app.php +++ b/bootstrap/app.php @@ -45,7 +45,7 @@ return Application::configure(basePath: dirname(__DIR__)) ->withMiddleware(function (Middleware $middleware) { $middleware->web(append: [ \Uwil\LaravelI18n\Middlewares\ForceLocale::class, - \App\Http\Middlewares\HandleInertiaRequests::class, + \Uwil\LaravelCommon\Middlewares\HandleInertiaRequests::class, \Illuminate\Http\Middleware\AddLinkHeadersForPreloadedAssets::class, \Uwil\LaravelCommon\Middlewares\SecureHeaders::class, \Uwil\LaravelCommon\Middlewares\TrimStrings::class,