From d6524942f7630c7d5b686bee0f2cc767c1b45a29 Mon Sep 17 00:00:00 2001 From: James Collins Date: Mon, 31 Jul 2023 09:33:23 +1000 Subject: [PATCH] fix permissions vs permissions() --- app/Models/User.php | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/app/Models/User.php b/app/Models/User.php index ad05535..d1538ad 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -105,12 +105,9 @@ class User extends Authenticatable implements Auditable * * @return Illuminate\Database\Eloquent\Collection */ - public function permissions(): array + public function permissions(): Collection { - $cacheKey = "user:{$this->id}:permissions"; - return Cache::remember($cacheKey, now()->addDays(28), function () { - return $this->hasMany(Permission::class)->pluck('permission')->toArray(); - }); + return $this->hasMany(Permission::class); } /** @@ -120,7 +117,10 @@ class User extends Authenticatable implements Auditable */ public function getPermissionsAttribute(): array { - return $this->permissions(); + $cacheKey = "user:{$this->id}:permissions"; + return Cache::remember($cacheKey, now()->addDays(28), function () { + return $this->permissions()->pluck('permission')->toArray(); + }); } /** @@ -131,7 +131,7 @@ class User extends Authenticatable implements Auditable */ public function hasPermission(string $permission): bool { - return in_array($permission, $this->permissions()); + return in_array($permission, $this->permissions); } /** @@ -150,7 +150,7 @@ class User extends Authenticatable implements Auditable return ['permission' => $permission]; }); - $existingPermissions = $this->permissions()->whereIn('permission', $permissions->pluck('permission'))->get(); + $existingPermissions = $this->permissions; $newPermissions = $permissions->reject(function ($permission) use ($existingPermissions) { return $existingPermissions->contains('permission', $permission['permission']); });