From e32b4caa7f95da1b41b743c147fcb897c1d9716d Mon Sep 17 00:00:00 2001 From: Geriano Date: Sun, 17 Jul 2022 14:23:47 +0700 Subject: [PATCH] sharing role and permission --- app/Http/Middleware/HandleInertiaRequests.php | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/app/Http/Middleware/HandleInertiaRequests.php b/app/Http/Middleware/HandleInertiaRequests.php index cea795b..be2c9dc 100644 --- a/app/Http/Middleware/HandleInertiaRequests.php +++ b/app/Http/Middleware/HandleInertiaRequests.php @@ -2,7 +2,10 @@ namespace App\Http\Middleware; +use App\Models\Permission; +use App\Models\Role; use Illuminate\Http\Request; +use Illuminate\Support\Collection; use Inertia\Middleware; class HandleInertiaRequests extends Middleware @@ -43,6 +46,17 @@ class HandleInertiaRequests extends Middleware 'info' => $request->session()->get('info'), 'warning' => $request->session()->get('warning'), ], + + '$roles' => $roles = fn () => $request->user()?->roles()->with('permissions:id,name')->get(['id', 'name']), + '$permissions' => function () use ($roles, $request) { + $permissions = $request->user()?->permissions()->get(['id', 'name']); + + return $roles()->reduce(function (Collection $prev, Role $role) { + $role->permissions->each(fn (Permission $permission) => $prev->push($permission)); + + return $prev; + }, $permissions); + }, ]); } }