Мой пользовательский провайдер установлен на объект пользователя.
Сущность имеет модель getRoles() и работает правильно.
Моя проблема в том, что:
Как мне сделать так, чтобы эти изменения базы данных применялись к сеансу без выхода из системы?




Я думаю, что этот вопрос похож на ваш. Принятый ответ был:
$user = $this->getUser();
$user->addRole('ROLE_ADMIN');
$this->get('fos_user.user_manager')->updateUser($user);
$token = new UsernamePasswordToken($user, null, 'main', $user->getRoles());
$this->get('security.context')->setToken($token);
Я пошел с голосующими Symfony: https://symfony.com/doc/current/security/voters.html
Не удалось достичь этого без ролей безопасности без выхода из системы.
Эй, да, кажется, мне нужно сохранить изменение через код, а не через базу данных. Между прочим, я читал, что могу включать сложные элементы управления доступом с помощью выражений, так что я почитаю об этом подробнее.