Bonjour à tous,
je suis actuellement en train de penser le back office de mon tout premier site web. Je vais donc avoir différent rôles pour mes utilisateur.
Pour simplifier à l'extrême on va dire :
ROLE_ADMIN
ROLE_AUTEUR
Un auteur ne pourra par exemple éditer que SES articles. Ceci implique donc d'aller au-delà de la simple vérification de son "ROLE_*" en vérifiant qu'il est également l'auteur de l'article en question.
En parcourant la documentation de Symfony on comprend que pour cette problématique il existe deux solutions appropriées:
Utiliser des ACLs (Access Control Lists) : http://symfony.com/doc/current/cookb...urity/acl.html
Utiliser des voters personnalisés : http://symfony.com/doc/current/cookbook/security/voters_data_permission.html
Il est cependant précisé que l'emploi d'ACLs est à réserver à des projets d'une certaine taille. Je cite :
"In Symfony, you can check the permission to access data by using the ACL module, which is a bit overwhelming for many applications."
D'un autre côté, si on suit l'exemple proposé dans la rubrique sur les votes personnalisés, cela implique forcément d'avoir une référence vers l'auteur de l'article en question dans l'entité "Article" afin que que la méthode "isGranted()" du service "security.authorization_checker" puisse vérifier que l'utilisateur connecté est bien l'auteur dudit article. Ai-je bien compris le concept ?
Sur KNPUniversity ils conseillent l'emploi de voters même si il reconnaissent que cela se fait un peu au détriment de la performance :
http://knpuniversity.com/screencast/...menu-cms#acl-s
J'aimerais avoir vos avis sur la question. Quelles solutions employez vous quand vous rencontrez cette problématique ?
Merci par avance pour vos réponses.
Partager