Ich benutze das Symfony FOS userBundle, alles funktioniert gut bis auf eine Sache.Symfony2 FOS Login mit Rollencheck
Ich möchte auf einer Benutzeranmeldung überprüfen, ob der Benutzer eine bestimmte Rolle hat. Wenn nicht, muss die Anmeldung fehlschlagen. Gibt es eine Möglichkeit, dies zu tun? Ich habe das halbe Internet durchsucht, kann aber keine Lösung finden.
security:
encoders:
FOS\UserBundle\Model\UserInterface: bcrypt
role_hierarchy:
ROLE_PARENT: ROLE_USER
ROLE_ADMIN: ROLE_PARENT
ROLE_SUPER_ADMIN: ROLE_ADMIN
providers:
fos_userbundle:
id: fos_user.user_provider.username
firewalls:
main:
pattern: ^/
form_login:
provider: fos_userbundle
csrf_provider: form.csrf_provider
logout: true
anonymous: true
mijn:
pattern: ^/
host: mijn.site
form_login:
provider: fos_userbundle
csrf_provider: form.csrf_provider
#csrf_token_generator: security.csrf.token_manager
# if you are using Symfony < 2.8, use the following config instead:
# csrf_provider: form.csrf_provider
logout: true
anonymous: true
access_control:
- { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/admin/, role: ROLE_ADMIN }
- { host: mijn.site, path: ^/gegevens, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { host: mijn.site, path: ^/, roles: ROLE_PARENT }
So kann die Anmeldung nur gelingen, wenn der Benutzer ROLE_PARENT hat. Es muss fehlschlagen, wenn es ROLE_ADMIN oder ROLE_SUPERADMIN ohne ROLE_PARENT hat.
Aber 'Userchecker definieren 'arbeitet für mich in' Symfony 2.7' – Jeet