Fix RelevePolicy : harmoniser les signatures avec les appels du Gate

Le Gate Laravel se comporte différemment selon que le 1er argument est
une classe string ou une instance :
- [Releve::class, $source] → Gate passe $source directement (vue + contrôleurs)
- [app(Releve::class), $source] → Gate injecte l'instance + $source (ancien StoreReleveRequest)

Correction : revenir aux signatures originales (User, Source) et remplacer
app(Releve::class) par Releve::class dans StoreReleveRequest pour uniformiser.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-06-05 19:22:55 +02:00
parent 4a5ff3e1a5
commit 5feceb0882
2 changed files with 4 additions and 4 deletions
+1 -1
View File
@@ -13,7 +13,7 @@ class StoreReleveRequest extends FormRequest
public function authorize(): bool public function authorize(): bool
{ {
$source = $this->route('source'); $source = $this->route('source');
return $this->user()->can('create', [app(\App\Models\Releve::class), $source]); return $this->user()->can('create', [\App\Models\Releve::class, $source]);
} }
public function rules(): array public function rules(): array
+3 -3
View File
@@ -9,7 +9,7 @@ use App\Models\User;
class RelevePolicy class RelevePolicy
{ {
public function viewAny(User $user, Releve $releve, Source $source): bool public function viewAny(User $user, Source $source): bool
{ {
return $source->isVisibleBy($user); return $source->isVisibleBy($user);
} }
@@ -19,7 +19,7 @@ class RelevePolicy
return $releve->source->isVisibleBy($user); return $releve->source->isVisibleBy($user);
} }
public function create(User $user, Releve $releve, Source $source): bool public function create(User $user, Source $source): bool
{ {
if ($source->status === SourceStatus::Termine) { if ($source->status === SourceStatus::Termine) {
return false; return false;
@@ -32,7 +32,7 @@ class RelevePolicy
public function update(User $user, Releve $releve): bool public function update(User $user, Releve $releve): bool
{ {
return $this->create($user, $releve, $releve->source); return $this->create($user, $releve->source);
} }
public function delete(User $user, Releve $releve): bool public function delete(User $user, Releve $releve): bool