Доступ к запрещенной роли пользователя после ее изменения

На моем сайте я хочу дать некоторым пользователям возможность менять свою роль, нажимая кнопку. Я реализовал это следующим образом:

$post = Request::createFromGlobals();
if($post->request->has('change') && $user->hasRole('ROLE_MEDIA') == False){
$em = $this->getDoctrine()->getManager();
$user->setRoles(array('ROLE_MEDIA'));
$em->flush();
}

Он работает нормально, после проверки базы данных и я могу восстановить в главном контроллере флаг без проблем. Проблема заключается в следующем: после нажатия кнопки и доступа к закрытым страницам пользователям, у которых есть ROLE_MEDIA, я получаю ошибку 403. Кажется, что Symfony не обнаруживает новую роль пользователя. Я ограничиваю некоторые страницы, используя следующий код:

/**
*
* @Security("has_role('ROLE_MEDIA')")
*/

Я не понимаю проблему, потому что я могу получить правильные значения в моем контроллере … Заранее спасибо

1

Решение

Я обнаружил, что самое простое решение — обновить сеанс путем восстановления идентификатора сеанса:

$post = Request::createFromGlobals();
if($post->request->has('change') && $user->hasRole('ROLE_MEDIA') == False){
$em = $this->getDoctrine()->getManager();
$user->setRoles(array('ROLE_MEDIA'));
$em->flush();
$this->get('session')->migrate();
}
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]