I have a big problem with my role_hierarchy,
security: role_hierarchy: ROLE_ADMIN:[ROLE_USER,ROLE_AUTHOR,ROLE_MODERATOR] ROLE_SUPER_ADMIN:[ROLE_ADMIN,ROLE_ALLOWED_TO_SWITCH]
with this, if I got the role SUPER_ADMIN, I will get ROLE_AUTHOR, ROLE_MODERATOR, ROLE_USER and ROLE_ADMIN. But my problem is, when I enter my website, if I check the profiler, I see that I have only ROLE_SUPER_ADMIN and not other roles, so can you help me?
my opinion ( base.html.twig
)
<h3>Blog</h3> <ul class="nav nav-pills nav-stacked"> <li><a href="{{ path('dom_home') }}">Home Page</a></li> {% if is_granted('ROLE_AUTHOR') %} <li><a href="{{ path('dom_add') }}">Add a post</a></li> {% endif %} {% if is_granted('IS_AUTHENTICATED_FULLY') %} <li><a href="{{ path('fos_user_security_logout') }}">Logout</a></li> {% else %} <li><a href="{{ path('fos_user_security_login') }}">login</a></li> <li><a href="{{ path('fos_user_registration_register') }}">register</a></li> {% endif %} </ul>
my security.yml
(app / config)
security: encoders: Symfony\Component\Security\Core\User\User: plaintext FOS\UserBundle\Model\UserInterface: sha512 role_hierarchy: ROLE_ADMIN: [ROLE_USER,ROLE_AUTHOR,ROLE_MODERATOR] ROLE_SUPER_ADMIN: [ROLE_ADMIN,ROLE_ALLOWED_TO_SWITCH] providers: in_memory: users: user: { password: userpass, roles: [ 'ROLE_USER' ] } admin: { password: adminpass, roles: [ 'ROLE_ADMIN' ] } fos_userbundle: id: fos_user.user_manager firewalls: dev: pattern: ^/(_(profiler|wdt)|css|images|js)/ security: false login: pattern: ^/(login$|register|resetting) anonymous: true main: pattern: ^/ form_login: provider: fos_userbundle remember_me: true always_use_default_target_path: true default_target_path: /dom/ remember_me: key: %secret% anonymous: false logout: true
edit:
my view (base.html.twig)
<h3>Blog</h3> <ul class="nav nav-pills nav-stacked"> <li><a href="{{ path('dom_home') }}">Home Page</a></li> {% if is_granted('ROLE_AUTHOR') %} <li><a href="{{ path('dom_add') }}">Add a post</a></li> {% endif %} {% if is_granted('IS_AUTHENTICATED_FULLY') %} <li><a href="{{ path('fos_user_security_logout') }}">Logout</a></li> {% else %} <li><a href="{{ path('fos_user_security_login') }}">login</a></li> <li><a href="{{ path('fos_user_registration_register') }}">register</a></li> {% endif %} </ul>
my security.yml (app / config)
security: encoders: Symfony\Component\Security\Core\User\User: plaintext FOS\UserBundle\Model\UserInterface: sha512 role_hierarchy: ROLE_ADMIN: [ROLE_USER,ROLE_AUTHOR,ROLE_MODERATOR] ROLE_SUPER_ADMIN: [ROLE_ADMIN,ROLE_ALLOWED_TO_SWITCH] providers: in_memory: users: user: { password: userpass, roles: [ 'ROLE_USER' ] } admin: { password: adminpass, roles: [ 'ROLE_ADMIN' ] } fos_userbundle: id: fos_user.user_manager firewalls: dev: pattern: ^/(_(profiler|wdt)|css|images|js)/ security: false login: pattern: ^/(login$|register|resetting) anonymous: true main: pattern: ^/ form_login: provider: fos_userbundle remember_me: true always_use_default_target_path: true default_target_path: /dom/ remember_me: key: %secret% anonymous: false logout: true
answer :)