From a688d214160083818a78d0bed9cec4c238a77a24 Mon Sep 17 00:00:00 2001 From: Mostafa Maklad Date: Sat, 24 Mar 2018 01:08:58 +0300 Subject: [PATCH 1/3] Fix code smells in codeclimate --- src/Traits/HasRoles.php | 44 ++++++++++++++++------------------------- 1 file changed, 17 insertions(+), 27 deletions(-) diff --git a/src/Traits/HasRoles.php b/src/Traits/HasRoles.php index 452e08c..56bbdf9 100644 --- a/src/Traits/HasRoles.php +++ b/src/Traits/HasRoles.php @@ -82,7 +82,7 @@ public function scopePermission(Builder $query, $permissions): Builder $roles = $roles->unique(); return $query->orWhereIn('permission_ids', $permissions->pluck('_id')) - ->orWhereIn('role_ids', $roles->pluck('_id')); + ->orWhereIn('role_ids', $roles->pluck('_id')); } /** @@ -160,26 +160,19 @@ public function hasRole($roles): bool if (\is_string($roles) && false !== \strpos($roles, '|')) { $roles = \explode('|', $roles); } - - if (\is_string($roles)) { - return $this->roles->contains('name', $roles); - } - - if ($roles instanceof Role) { - return $this->roles->contains('id', $roles->id); - } - - if (\is_array($roles)) { + $hasRole = false; + if (\is_string($roles) || $roles instanceof Role) { + $hasRole = $this->roles->contains('name', $roles->name ?? $roles); + } else { foreach ($roles as $role) { if ($this->hasRole($role)) { - return true; + $hasRole = true; + break; } } - - return false; } - return ! $roles->intersect($this->roles)->isEmpty(); + return $hasRole; } /** @@ -207,19 +200,16 @@ public function hasAllRoles($roles): bool $roles = \explode('|', $roles); } - if (\is_string($roles)) { - return $this->roles->contains('name', $roles); - } + if (\is_string($roles) || $roles instanceof Role) { + $hasRoles = $this->hasRole($roles); + } else { + $roles = \collect()->make($roles)->map(function ($role) { + return $role instanceof Role ? $role->name : $role; + }); - if ($roles instanceof Role) { - return $this->roles->contains('id', $roles->id); + $hasRoles = $roles->intersect($this->roles->pluck('name')) == $roles; } - - $roles = \collect()->make($roles)->map(function ($role) { - return $role instanceof Role ? $role->name : $role; - }); - - return $roles->intersect($this->roles->pluck('name')) == $roles; + return $hasRoles; } /** @@ -375,7 +365,7 @@ private function convertToRoleModels($roles): Collection $roles = collect($roles); } - if (! $roles instanceof Collection) { + if (!$roles instanceof Collection) { $roles = collect([$roles]); } From 5012996317c2bacb1bcfafdb055fdabeeb807f94 Mon Sep 17 00:00:00 2001 From: Mostafa Maklad Date: Sat, 24 Mar 2018 01:16:58 +0300 Subject: [PATCH 2/3] Fix code smells in codeclimate --- src/Traits/HasRoles.php | 31 ++++++++++++++----------------- 1 file changed, 14 insertions(+), 17 deletions(-) diff --git a/src/Traits/HasRoles.php b/src/Traits/HasRoles.php index 56bbdf9..2a42c65 100644 --- a/src/Traits/HasRoles.php +++ b/src/Traits/HasRoles.php @@ -160,19 +160,18 @@ public function hasRole($roles): bool if (\is_string($roles) && false !== \strpos($roles, '|')) { $roles = \explode('|', $roles); } - $hasRole = false; + if (\is_string($roles) || $roles instanceof Role) { - $hasRole = $this->roles->contains('name', $roles->name ?? $roles); - } else { - foreach ($roles as $role) { - if ($this->hasRole($role)) { - $hasRole = true; - break; - } + return $this->roles->contains('name', $roles->name ?? $roles); + } + + foreach ($roles as $role) { + if ($this->hasRole($role)) { + return true; } } - return $hasRole; + return false; } /** @@ -201,15 +200,13 @@ public function hasAllRoles($roles): bool } if (\is_string($roles) || $roles instanceof Role) { - $hasRoles = $this->hasRole($roles); - } else { - $roles = \collect()->make($roles)->map(function ($role) { - return $role instanceof Role ? $role->name : $role; - }); - - $hasRoles = $roles->intersect($this->roles->pluck('name')) == $roles; + return $this->hasRole($roles); } - return $hasRoles; + $roles = \collect()->make($roles)->map(function ($role) { + return $role instanceof Role ? $role->name : $role; + }); + + return $roles->intersect($this->roles->pluck('name')) == $roles; } /** From e81f26e1d88d91cd731ef8ab1f2c0718c954d773 Mon Sep 17 00:00:00 2001 From: Mostafa Maklad Date: Sat, 24 Mar 2018 01:22:12 +0300 Subject: [PATCH 3/3] Fix code smells in codeclimate --- src/Traits/HasRoles.php | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/src/Traits/HasRoles.php b/src/Traits/HasRoles.php index 2a42c65..8f3f874 100644 --- a/src/Traits/HasRoles.php +++ b/src/Traits/HasRoles.php @@ -165,13 +165,11 @@ public function hasRole($roles): bool return $this->roles->contains('name', $roles->name ?? $roles); } - foreach ($roles as $role) { - if ($this->hasRole($role)) { - return true; - } - } + $roles = \collect()->make($roles)->map(function ($role) { + return $role instanceof Role ? $role->name : $role; + }); - return false; + return ! $roles->intersect($this->roles->pluck('name'))->isEmpty(); } /** @@ -202,6 +200,7 @@ public function hasAllRoles($roles): bool if (\is_string($roles) || $roles instanceof Role) { return $this->hasRole($roles); } + $roles = \collect()->make($roles)->map(function ($role) { return $role instanceof Role ? $role->name : $role; });