Ошибка или ошибка с обновлением ролей Symfony User

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

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

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

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

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

2 ответа

Решение

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

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

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

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

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

https://github.com/symfony/symfony/issues/12025

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

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

security:
    always_authenticate_before_granting: true
Другие вопросы по тегам