From 3d248f82b0dea3463d1b25fc1fb5469d11635fff Mon Sep 17 00:00:00 2001 From: erikn69 Date: Fri, 21 Jun 2024 18:49:50 -0500 Subject: [PATCH] Fix phpstan (#2685) --- .github/workflows/phpstan.yml | 6 +++++- phpstan.neon.dist | 1 - src/Contracts/Permission.php | 1 + src/Contracts/Role.php | 1 + src/Traits/HasRoles.php | 10 ++++++---- 5 files changed, 13 insertions(+), 6 deletions(-) diff --git a/.github/workflows/phpstan.yml b/.github/workflows/phpstan.yml index 609d55a6..75eb21d8 100644 --- a/.github/workflows/phpstan.yml +++ b/.github/workflows/phpstan.yml @@ -5,6 +5,10 @@ on: paths: - '**.php' - 'phpstan.neon.dist' + pull_request: + paths: + - '**.php' + - 'phpstan.neon.dist' jobs: phpstan: @@ -16,7 +20,7 @@ jobs: - name: Setup PHP uses: shivammathur/setup-php@v2 with: - php-version: 8.1 + php-version: 8.3 coverage: none - name: Install composer dependencies diff --git a/phpstan.neon.dist b/phpstan.neon.dist index 3a451a16..02287840 100644 --- a/phpstan.neon.dist +++ b/phpstan.neon.dist @@ -11,7 +11,6 @@ parameters: - database/migrations/add_teams_fields.php.stub tmpDir: build/phpstan checkOctaneCompatibility: true - checkMissingIterableValueType: false ignoreErrors: - '#Unsafe usage of new static#' diff --git a/src/Contracts/Permission.php b/src/Contracts/Permission.php index 111d2ed2..f706dbb8 100644 --- a/src/Contracts/Permission.php +++ b/src/Contracts/Permission.php @@ -10,6 +10,7 @@ * @property string|null $guard_name * * @mixin \Spatie\Permission\Models\Permission + * @phpstan-require-extends \Spatie\Permission\Models\Permission */ interface Permission { diff --git a/src/Contracts/Role.php b/src/Contracts/Role.php index d00201a2..aae0fff5 100644 --- a/src/Contracts/Role.php +++ b/src/Contracts/Role.php @@ -10,6 +10,7 @@ * @property string|null $guard_name * * @mixin \Spatie\Permission\Models\Role + * @phpstan-require-extends \Spatie\Permission\Models\Role */ interface Role { diff --git a/src/Traits/HasRoles.php b/src/Traits/HasRoles.php index 88013e85..fa537725 100644 --- a/src/Traits/HasRoles.php +++ b/src/Traits/HasRoles.php @@ -233,12 +233,14 @@ public function hasRole($roles, ?string $guard = null): bool return $this->roles ->when($guard, fn ($q) => $q->where('guard_name', $guard)) - ->contains(function ($role) use ($roles) { - if ($role->name instanceof \BackedEnum) { - return $role->name->value == $roles; + ->pluck('name') + ->contains(function ($name) use ($roles) { + /** @var string|\BackedEnum $name */ + if ($name instanceof \BackedEnum) { + return $name->value == $roles; } - return $role->name == $roles; + return $name == $roles; }); }