Я использую Sonata администратора Bundle и у меня возникают некоторые проблемы с функцией:Sonata Администратор Bundle удалить RouteCollection роли
function configureRoutes(RouteCollection $collection){ }
Функция работает правильно, если я пишу простой:
$collection->remove('create');
Но что я triying сделать, это удалить некоторые маршруты в зависимости от роли пользователя, подключенного к, так что я пробовал:
$seguridad = $this->getConfigurationPool()->getContainer()->get('security.context');
if ($seguridad->getToken()->getUser() != "anon."){
if (!$seguridad->isGranted('ROLE_ADMIN') ) {
$collection->remove('create');
}
}
Но зарегистрирован как Admin Я получаю сообщение об ошибке: Исключение было создано во время рендеринга шаблона («Маршрут» admin_sademer_core_MIENTITY_create «не существует».) В SonataAdminBundle: Block: block_admin_list.html.twig в строке 31.
Как будто в какой-то момент Соната удалит маршрут, создав я, прежде чем войти в панель инструментов, а затем, когда я войду в панель инструментов, я попытаюсь войти в создание маршрута, но маршрут уже удален. Но я не уверен, что происходит.
Любая идея? Большое спасибо!
Посмотрите http://sonata-project.org/bundles/admin/master/doc/reference/security.html#configuration, есть на самом деле встроенный способ сделать это. – likeitlikeit
Я видел эту страницу, но неясно, как прикреплять каждое разрешение каждому пользователю/роли с каждой сущностью. Поскольку в документации только показано, как вы можете объявлять разные разрешения, но не как объявлять, какое разрешение имеет каждую роль с каждым объектом. – Angel