noneim
Новичок
В symfony создаю 2 провайдера и 2 правила firewall:
providers:
# Провайдер 1 - используем для админки, доступа к тестам и т.п.
in_memory:
memory:
users:
admin: { password: password1111, roles: [ 'ROLE_ADMIN' ] }
# Провайдер 2 - используем сервис rhuser_provider - для клиентов.
webservice:
id: rhuser_provider
И соответственно 2 правила firewall:
firewalls:
# Без аутентификации к профайлеру, картинкам и скриптам.
dev:
......
# Провайдер 1 - авторизация по форме, доступ к админке (тесты и т.п.)
adminarea:
pattern: /admin/.*
provider: in_memory
.........................
# Провайдер 2 - авторизация по форме (для клиентов)
clientarea:
pattern: ^/
provider: webservice
___________________________________________________________________________
Теперь по адресу /admin может быть залогинен админ, по адресу / может быть залогинен обычный юзер, причем одновременно эти 2 юзера могут быть залогинены. Теперь вопрос, как узнать в обычных контроллерах сайта залогинен ли админ? Т.е. задача такая - отображать админскую панель на всех страницах сайта (если админ залогиен), но при этом не путать этих 2-х юзеров.
Т.е. возожны 3 состояния:
1) админ и клиент не залогинены
2) админ залогинен, клиент нет - отображаются кнопки редактирования сайта для админа
3) админ не залогинен, клиент залогинен - кнопок редактирования контента для админа нет
4) админ залогинен, клиент залогинен - доступны как клиентские скрытые разделы, так и админские
providers:
# Провайдер 1 - используем для админки, доступа к тестам и т.п.
in_memory:
memory:
users:
admin: { password: password1111, roles: [ 'ROLE_ADMIN' ] }
# Провайдер 2 - используем сервис rhuser_provider - для клиентов.
webservice:
id: rhuser_provider
И соответственно 2 правила firewall:
firewalls:
# Без аутентификации к профайлеру, картинкам и скриптам.
dev:
......
# Провайдер 1 - авторизация по форме, доступ к админке (тесты и т.п.)
adminarea:
pattern: /admin/.*
provider: in_memory
.........................
# Провайдер 2 - авторизация по форме (для клиентов)
clientarea:
pattern: ^/
provider: webservice
___________________________________________________________________________
Теперь по адресу /admin может быть залогинен админ, по адресу / может быть залогинен обычный юзер, причем одновременно эти 2 юзера могут быть залогинены. Теперь вопрос, как узнать в обычных контроллерах сайта залогинен ли админ? Т.е. задача такая - отображать админскую панель на всех страницах сайта (если админ залогиен), но при этом не путать этих 2-х юзеров.
Т.е. возожны 3 состояния:
1) админ и клиент не залогинены
2) админ залогинен, клиент нет - отображаются кнопки редактирования сайта для админа
3) админ не залогинен, клиент залогинен - кнопок редактирования контента для админа нет
4) админ залогинен, клиент залогинен - доступны как клиентские скрытые разделы, так и админские