Sécurité - Voter¶
Dans le premier TP consacré à la sécurité, nous avons mis en place des règles d'autorisation simples via les rôles et les attributs. Nous allons maintenant aller plus loin en autorisant la modification et la suppression d'une citation uniquement à l'utilisateur l'ayant créée.
1. Notion d'auteur¶
Avant de pouvoir mettre en place cette nouvelle règle métier, il est nécessaire d'ajouter la notion d'auteur de la citation.
Travail à réaliser
- Ajouter la notion d'auteur (utilisateur qui a créé la citation) sous la forme d'une relation Doctrine entre l'entité
Quote
et l'entitéUser
. Une citation doit obligatoirement avoir un auteur. - Afin de pouvoir affecter automatiquement l'utilisateur authentifié en tant qu'auteur d'une nouvelle citation,
nous allons utiliser le bundle StofDoctrineExtensionsBundle
et plus particulièrement la fonctionnalité
Blameable
:- installer le bundle
- activer l'extension
Blameable
au niveau de la configuration du bundle.
- Toujours en suivant la documentation,
ajouter l'annotation
Blameable
sur la propriétéauthor
de l'entitéQuote
afin que l'auteur soit mis à jour à la création de la citation. - Afficher l'auteur de la citation à chaque affichage d'une citation.
2. Voter
¶
Objectifs :
- restreindre la modification et la suppression d'une citation à son auteur
- les administrateurs peuvent modifier/supprimer les citations de tout le monde
Travail à réaliser
- Créer le
Voter
correspondant aux règles ci-dessus - Utiliser le
Voter
pour restreindre l'accès aux actions et cacher les éléments d'interface correspondants (boutons, liens, etc) - Corriger les tests fonctionnels (si nécessaire)
Ressources :
Dernière mise à jour:
February 27, 2023