J'ai enregistré une politique pour accéder aux profils de l'utilisateur (voir, éditer). Je demande d'autoriser si:Politique de Laravel - Mauvais utilisateur transmis par le contrôleur
- Le profil que vous essayez d'afficher vous appartient
- Vous avez la permission « modifier tout profil ».
donc c'est mon view()
-Function dans la politique:
public function view(User $user)
{
debug('User in Controller: '.$user->id);
return (Auth::user()->id === $user->id) || Auth::user()->can('edit any profile');
}
Ceci est la méthode pour afficher la vue de profil pris de la ProfileController:
public function show(User $user) {
debug('User in Controller: '.$user->id);
$this->authorize('view', $user);
return view('profile.index')->with([
"user" => $user,
]);
}
Et enfin la route:
Route::get('/profile/{user}', '[email protected]')->name('profile');
Bien sûr, la politique a été enregistrée dans le AuthServiceProvider:
protected $policies = [
'App\Model' => 'App\Policies\ModelPolicy',
User::class => ProfilePolicy::class,
];
Fondamentalement, le contrôleur transmet le mauvais utilisateur à la stratégie. Voici les messages des s debug()
respectifs de »: