Добавление ролей в Symfony 4 после аутентификации - PullRequest
0 голосов
/ 05 октября 2018

Можно ли добавить некоторые роли пользователю в symfony 4 после того, как пользователь вошел в систему?Например, если вы перейдете на определенную страницу, я хочу добавить некоторые роли, взятые из базы данных для пользователя без какого-либо процесса повторной аутентификации.

1 Ответ

0 голосов
/ 05 октября 2018

Вы можете заменить токен.

$roles = array_merge($user->getRoles(), ['ROLE_EXTRA']);

$token = new UsernamePasswordToken($user, null, 'main', roles);

$this->tokenStorage->setToken($token);

Однако этот вариант использования очень нерегулярен, поэтому вы можете подумать над ним.

Кроме того, взгляните на security.yml

security:
    always_authenticate_before_granting: true

Это может переопределить ваши роли путем повторной аутентификации.(Я точно не знаю.) При необходимости установите значение false.

...