Как проверить, является ли атрибут пользователя определенным значением для разных групп маршрутов в Symfony?

Система:

Пользователь привязан к компании. У компании есть лицензия. Лицензия имеет 2 срока действия. expirationBasic и expirationExtended.

Что я хочу: Для 50 маршрутов я хочу проверить, имеет ли лицензия компании вошедшего в систему пользователя срок действия ExpirationExtended> сейчас.

Для 50 маршрутов я хочу проверить, истек ли срок действия лицензии компании вошедшего в систему пользователя.

Я использую Symfony 3.4

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
0
24
1

Ответы 1

В этом вопросе отсутствуют детали, например, что вы хотите, чтобы система делала, если проверка не удалась. Есть как минимум два распространенных способа справиться с этим.

"Симфонический" способ - добавить фильтр событий. Создайте новый класс, расширяющий EventSubscriberInterface, и поместите его в каталог / пространство имен EventSubscriber. Когда соответствующее событие запускается, ваш метод может выполнять проверки и бросать и AccessDeniedHttpException.

Предполагая, что ваши 50 маршрутов идут к нескольким контроллерам, другое решение - написать абстрактный класс контроллера, который установлен как родительский для ваших конечных контроллеров. Затем этот базовый класс может выполнить проверку для вошедшего в систему пользователя.

Другие вопросы по теме