Проверка пользователя в конструкторе symfony - PullRequest
0 голосов
/ 06 февраля 2020

Моя проблема: Когда я пытаюсь вызвать какое-либо действие вошедшего в систему пользователя в конструкторе, он всегда равен NULL.
Я знаю, это потому, что он еще не загружен через брандмауэр symfony.
Есть ли другой способ получить этот эффект? :

1. Я создаю класс, который я использую во всех контроллерах в конструкторах.
2. Этот класс проверяет, есть ли у пользователя ip, подобный ip в базе данных, или другие действия, которые я захочу выполнить на пользователя.

Я пытался использовать

Symfony \ Component \ Security \ Core \ Security

и

Symfony \ Component \ Security \ Core \ Authentication \ Token \ Storage \ TokenStorageInterface

, но ничего не сделал.

1 Ответ

0 голосов
/ 06 февраля 2020

Полагаю, я правильно понял ваш вопрос.

Если вы хотите предоставить доступ к ресурсам / действиям на основе IP-адреса запрашивающей стороны и / или любых других условий (например, пользователь loggedIn + hasIP + ...). Попробуйте проверить избирателей:

, вам нужно будет сделать собственного избирателя, зарегистрируйте его в служебном контейнере, а затем, основываясь на IP-адресе пользователя и пользователя (возьмите его из request_stack), ваш избиратель позволит пользователю выполнить действие.

Обратите внимание, что в контроллере вам не нужно ничего реализовывать : кроме добавления либо аннотации @security с требуемым определением роли, либо заполнения security.yml (в зависимости от конфигурации проекта), все маги c будут происходить на уровне безопасности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...