Ошибка или ошибка с обновлением ролей пользователей Symfony

На этот раз у меня возникла любопытная ошибка в моем проекте с управлением ролями от пользователя.

Я установил пакет EasyAdmin, в котором я могу управлять ролями пользователей. Поэтому я вхожу в систему с пользователем, у которого есть доступ к EasyAdmin (в данном случае ROLE_ADMIN). Помимо этой роли у меня есть еще несколько ролей, одна из которых называется ROLE_SUPERSUSER, где пользователь может редактировать 2 поля, которые остальные пользователи не имеют права редактировать.

Так что бросьте EasyAdmin, я удаляю от себя ROLE_SUPERSUSER, и вот вам суть дела. Если я попытаюсь получить доступ к зоне редактирования из профиля, если у вас есть этот ROLE_SUPERSUSER, вы сможете редактировать это поле, но, поскольку я удалил эту роль от себя, я не собираюсь смотреть эти поля там. Вместо этого на экране появляется ошибка.

Если я просто выйду из системы и снова войду, проблема будет решена. Но, очевидно, я не могу заставить пользователей выходить из системы и входить в систему, когда я меняю их роли.

Ошибка или ошибка с обновлением ролей пользователей Symfony

Я предполагаю, что проблема возникает в кеше, но я не нахожу решения.

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Symfony Station Communiqué - 17 февраля 2023 г
Symfony Station Communiqué - 17 февраля 2023 г
Это коммюнике первоначально появилось на Symfony Station , вашем источнике передовых новостей Symfony, PHP и кибербезопасности.
Управление ответами api для исключений на Symfony с помощью KernelEvents
Управление ответами api для исключений на Symfony с помощью KernelEvents
Много раз при создании api нам нужно возвращать клиентам разные ответы в зависимости от возникшего исключения.
0
0
66
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Роли Symfony добавляются при аутентификации по умолчанию, поэтому вам придется повторно войти в систему, чтобы это изменение вступило в силу.

Вы можете изменить это в security.yml.

security:
    always_authenticate_before_granting: true
Ответ принят как подходящий

Я смог найти решение благодаря KNPUniversity.

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

Я получил идеи по этим ссылкам:

https://github.com/symfony/symfony/pull/24331

С особым вниманием к этой ссылке:

https://github.com/symfony/symfony/issues/12025#issuecomment-219723819

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