2014-11-06 2 views
0

Я хотел бы иметь весь доступ к странице доступна только если вошли в систему (кроме страницы входа пользователя FOS) пользовательПроблемы со страницей ресурсов с использованием FOSUserBundle

Это, как я установил контроль доступа:

access_control: 
    - { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY } 
    - { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY } 
    - { path: ^/, role: ROLE_ADMIN } 

Но проблема в том, что теперь он блокирует все мои скрипты. CSS и JS недоступны, поэтому страница входа в систему не разработана! Если я удалю:

- { path: ^/, role: ROLE_ADMIN } 

От контроля доступа все в порядке, а страница входа в систему. Любая помощь в том, как поставить всю страницу под «блокировку» (кроме страницы входа), но все еще есть отображаемые стили (CSS)?

+0

, где расположен CSS и как вы реализовали? Обычно это должно работать так. Предполагается, что CSS находится в папке/web, на которую не влияет маршрутизация или безопасность. – Koalabaerchen

+0

В моем комплекте, реализованном через base.html.twig в таблицах стилей. Затем символическая ссылка на web/bundles (в моей локальной среде devhost). –

+0

по символической ссылке вы имеете в виду, что у вас есть фактические файлы в сети/связках и есть символическая ссылка внутри ресурсов пакета, которая ссылается на них, и вы называете символические ссылки? – Koalabaerchen

ответ

1

Пути к вашим js, css и bundles каталогов ловятся вашим контролем доступа, о том, что пользователь должен быть ROLE_ADMIN. Чтобы разобраться в этом, вы можете просто добавить правила для этих каталогов выше ^/ правило, используя IS_AUTHENTICATED_ANONYMOUSLY как ..

access_control: 
    - { path: ^/css, role: IS_AUTHENTICATED_ANONYMOUSLY } 
    - { path: ^/js, role: IS_AUTHENTICATED_ANONYMOUSLY } 
    - { path: ^/bundles, role: IS_AUTHENTICATED_ANONYMOUSLY } 
    - { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY } 
    - { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY } 
    - { path: ^/, role: ROLE_ADMIN } 
Смежные вопросы