Aller au contenu

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

  1. 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.
  2. 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 :
  3. 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.
  4. 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

  1. Créer le Voter correspondant aux règles ci-dessus
  2. Utiliser le Voter pour restreindre l'accès aux actions et cacher les éléments d'interface correspondants (boutons, liens, etc)
  3. Corriger les tests fonctionnels (si nécessaire)

Ressources :


Dernière mise à jour: February 27, 2023