Comment récupérer la hiérarchie de rôles complète dans Symfony
Je suis en utilisant symfony2 rôle de la hiérarchie, il fonctionne bien, mais dans le but d'effectuer quelques changements, j'ai récupérer le role_hierarchy
configurer dans mon security.yml
.
role_hierarchy:
ROLE_USER: [ROLE_ACCESS_USER, ROLE_ACCESS_DATA, ROLE_ACCESS_PRODUCT]
À l'aide de getRoles()
juste retour ROLE_USER
comment puis-je sais que dans mon code que ROLE_USER
est faite avec ROLE_ACCESS_USER, ROLE_ACCESS_DATA, ROLE_ACCESS_PRODUCT
?
merci pour votre aide.
source d'informationauteur linibou | 2012-01-19
Vous devez vous connecter pour publier un commentaire.
Vous pouvez obtenir la hiérarchie du conteneur:
Avec auto câblage activé, vous pouvez également injecter directement le
RoleHierarchy
objet rempli avec le rôle mondial de la hiérarchie.Simplement injecter la
RoleHierarchyInterface
dans votre contrôleur ou de service par l'utilisation de l'injection de dépendance:Remarque: Cela vous permet également d'appeler
getReachableRoles()
sur leRoleHierarchy
objet, qui pourrait être utile dans votre cas:De Symfony4 vous devez ajouter un alias pour
security.role_hierarchy
dans votreconfig/services.yml
en ajoutant la ligne suivante:Pour une représentation correcte de votre rôle, vous avez besoin de la récursivité. Les rôles peuvent s'étendre à d'autres rôles.
Voici un exemple: https://stackoverflow.com/a/36900807/3635680
de sécurité.role_hierarchy.des rôles est tous les rôles de sécurité définies dans la sécurité.yml
Si vous souhaitez inclure la Sonate de rôles d'Administrateur, vous pouvez vérifier le code dans SonataUserBundle\Form\Type\SecurityRolesType