0

Je suis nouveau dans Symfony, alors excusez mon ignorance.Symfony 2.8: Comment empêcher l'édition des champs de service de l'utilisateur

Dans mon projet, j'utilise Sonata User Bundle, avec une entité utilisateur étendue par plusieurs champs. Certains d'entre eux peuvent être édités par l'utilisateur lui-même, tandis que d'autres sont utilisables et ils ne peuvent être modifiés que par l'administrateur. La question est: Comment assurer la sécurité lors de l'édition des informations par l'utilisateur?
Je vois 2 façons:
1. Utilisez des contraintes de validation personnalisées qui vérifieront le rôle de l'utilisateur.
2. Utilisez une entité associée de type un-à-un avec son propre administrateur.
Peut-être existe-t-il des moyens standard pour accomplir cette tâche?

Merci d'avance!

UPD:
Le problème est qu'il existe une entité (utilisateur) qui peut être modifiée à partir de différents endroits: zone d'administration et zone publique. Naturellement, les formulaires pour les zones admin et public sont différents, mais il est possible qu'un attaquant puisse créer un formulaire et éditer des champs accessibles uniquement à l'administrateur. Par conséquent, je veux les protéger au niveau de l'entité. C'est possible?

Répondre

0

Il existe de nombreux cas de sécurité. Vous pouvez utiliser @Security avec l'annotation has_role ('ROLE_ADMIN') pour votre action ou dans twig is_granted pour afficher ou non un champ ou utiliser custom voter pour vérifier si l'utilisateur peut modifier ou supprimer un objet. Décrivez votre besoin clairement pour vous aider.

+0

Le problème est qu'il existe une entité (utilisateur) qui peut être éditée à partir de différents endroits: zone d'administration et zone publique. Naturellement, les formulaires pour les zones admin et public sont différents, mais il est possible qu'un attaquant puisse créer un formulaire et éditer des champs accessibles uniquement à l'administrateur. Par conséquent, je veux les protéger au niveau de l'entité. C'est possible? – boehpyk

+1

essayer d'utiliser les événements de formulaire prédéfinir les données et présumer les données et passer dans la construction authorizationChecker pour vérifier si le rôle de l'utilisateur actuel dans le formulaire de chargement et juste dans soumettre est la bonne fois. –