2014-09-03 2 views
1

Я использую symfony 2.5 и пытаюсь проверить, имеет ли пользователь определенную роль. Таблицы установлены правильно в базе данных, а данные правильно вставлено:FOSUserBundle: Пользователь не получает роли группы

В базе данных существует пользователь [email protected] с отображенной группой admin которая определила роли a:1:{i:0;s:10:"ROLE_ADMIN";}

Я не знаю, почему роли не читаются правильно. Панель debug-tool говорит мне, что я только аутентифицирован как ROLE_USER.

Код:

$securityContext = $this->container->get('security.context');  
$securityContext->isGranted('ROLE_ADMIN'); 

if ($securityContext->isGranted('ROLE_ADMIN')) { 
    echo 'crazy coding magic happens here'; 
} 

Я нашел этот вопрос (Symfony 2 FOS UserBundle users doesn't get group's role), который, кажется, связан с моим вопросом, но я не доволен ответом, потому что я не хочу, чтобы проверить группы- доступ, но роль-доступ. В моем случае групповые разрешения могут измениться в будущем.

Благодарим за помощь!

ответ

0

Хорошо, похоже, я нашел решение самостоятельно.

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

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

Смежные вопросы