2013-04-06 4 views
2

У меня проблема с файерволом в Symfony2.Брандмауэр Symfony2, ROLE_USER имеет доступ к/admin

У меня есть это в моем security.yml файле

- { path: ^/, role: ROLE_USER } 
- { path: ^/admin, role: ROLE_ADMIN } 
- { path: ^/users, role: ROLE_ADMIN } 

В моем меню строитель им с помощью isGranted и это отлично работает, если я войти в систему с моим ROLE_USER пользователем, меню не строит меню администратора.

Но если я вручную набираю/admin в браузере, я получаю страницы администратора. (Это происходит как в сфере производства и Дево envoirenment)

В панели инструментов в Dev окр я могу видеть пользователь не имеет ROLE_ADMIN роли,

Если я не войти в системе вообще, я вижу только страницу входа в системе, так что здесь это все прекрасно

Полный security.yml: https://gist.github.com/lsv/2e9dce622fd82d31853c

Полный config.yml: https://gist.github.com/lsv/ec87592f911262af5417

Im используя FOSUserbundle

ответ

4

Записи в access_controlshould be in the order from more specific to more general. Таким образом, в вашем случае они должны быть в следующем порядке:

- { path: ^/admin, roles: ROLE_ADMIN } 
- { path: ^/, roles: ROLE_USER } 
+1

Спасибо, сэр! - Работает как шарм – Martin