Как создать и зарегистрировать новые роли в Symfony2
Я вижу от чиновника Symfony2 doc по безопасности что новые роли могут быть определены помимо "классических" (т. е. ROLE_USER, ROLE_ADMIN и т. д.).
Как я могу определить новые роли и зарегистрируйте их в моем приложении Symfony2, чтобы создать иерархию ролей в безопасность.в формате YML?
Извините, что побеспокоил всех вас! Я думаю, что ответ прост. В самом деле, кажется, что достаточно начать использовать новый роль, начиная имя с файла role_. Например, можно сказать ROLE_NEWS_AUTHOR чтобы только люди с этой ролью могли вставлять новости на веб-сайт.
спасибо.
1 ответов
конечно, вы можете просто добавить любые роли, начиная с ROLE_SOMEROLE.В безопасности.файл yml есть две основные части к 1.ограничение доступа 2. Кто такие пользователи могут получить доступ к
a. access_control: который ограничивает шаблон и указывает роль, к которой можно получить доступ. b. role_hierarchy: здесь иерархическая структура роли, для примера ниже пользователь администратора (ROLE_ADMIN) имеют роли ROLE_USER,ROLE_NEWS_AUTHOR. Так он может открыть все страницы пользователей и NEWS_AUTHOR.Независимо от иерархии может дать.
access_control:
- { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY }/login any one can access this pattern
- { path: ^/admin/, roles: ROLE_ADMIN }//block all pattern /admin/anything*
- { path: ^/news/, roles: ROLE_NEWS_AUTHOR } //block all pattern /news/anything*
role_hierarchy:
ROLE_ADMIN: [ROLE_USER,ROLE_NEWS_AUTHOR]
в вашем контроллере вы можете проверить роли,
if(TRUE ===$this->get('security.context')->isGranted('ROLE_ADMIN') )
{
// do something related to ADMIN
}
else if(TRUE ===$this->get('security.context')->isGranted('ROLE_NEWS_AUTHOR') )
{
// do something related to News Editor
}
надеюсь, это поможет вам . Удачи в кодировании.