From 5ddd42b2e5904eae9a47de40d920bc772c9a67d8 Mon Sep 17 00:00:00 2001 From: Geriano Date: Sun, 17 Jul 2022 14:26:49 +0700 Subject: [PATCH] fix bug role and permission is not defined when user is not loggedin --- app/Http/Middleware/HandleInertiaRequests.php | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/app/Http/Middleware/HandleInertiaRequests.php b/app/Http/Middleware/HandleInertiaRequests.php index be2c9dc..0029451 100644 --- a/app/Http/Middleware/HandleInertiaRequests.php +++ b/app/Http/Middleware/HandleInertiaRequests.php @@ -47,11 +47,17 @@ class HandleInertiaRequests extends Middleware 'warning' => $request->session()->get('warning'), ], - '$roles' => $roles = fn () => $request->user()?->roles()->with('permissions:id,name')->get(['id', 'name']), + '$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']); + $user = $request->user(); + + if (!$user) { + return []; + } + + $permissions = $user->permissions()->get(['id', 'name']); - return $roles()->reduce(function (Collection $prev, Role $role) { + return $roles()?->reduce(function (Collection $prev, Role $role) { $role->permissions->each(fn (Permission $permission) => $prev->push($permission)); return $prev;