Dans ce nouveau chapitre, nous allons replonger sur la partie sécurisation et on va voir le système d'autorisation de Laravel. Jusqu'à maintenant nous avons simplement utilisé le système de middleware mais il est possible d'utiliser des classes qui vont permettre de définir les permissions action par action.
La création d'une politique d'accès va souvent se faire en lien avec un model.
Ensuite, à l'intérieur du fichier PostPolicy les fonctions devront retourner false ou true en fonction de si on autorise ou non l'accès à la ressource. Il faudra ensuite enregistrer le lien entre le modèle et la politique en modifiant la propriété $policies dans le AuthServiceProvider.
Vérifier la permission
Maintenant que nos politiques sont créées on peut les utiliser pour vérifier si l'utilisateur a accès ou non à une ressource. Cela peut se faire de différentes manières.
Model User
Le model User fournit par défaut dispose de méthodes permettant de vérifier l'accès de l'utilisateur.
Controller
Si votre Controller hérite du App\Http\Controllers\Controller vous aurez accès à la méthode authorize qui vous permettra de voir si l'utilisateur a le droit de faire l'action demandée.
Cette méthode renverra une exception si l'utilisateur n'a pas les permissions nécessaire et le framework la capturera pour agir en fonction (redirection ou affichage d'une réponse JSON).
Middlewares
Laravel offre aussi un middleware spécial can qui permet de vérifier la permission depuis la déclaration de la route.
Blade
Dans les vue blade si vous voulez afficher ou masquer un bouton en fonction des permissions de l'utilisateur vous pouvez utiliser la directive @can ou @cannot.