Создание пользовательских ролей

Я делаю новый проект в symfony1.4. Теперь этот проект требует от пользователей входа в систему и просмотра, а так как любой проект такого типа требует ограничения пользователей на основе ролей. Я не хочу реализовывать это очевидным образом, т. Е. Иметь атрибут ролей для каждого пользователя и иметь заранее определенные роли и назначать их пользователям. Проблема с этим заключается в том, что он не очень гибкий, поскольку больше ролей определяется позже.

Я думал о том, как использовать модель EAV здесь (не уверен, что могу сделать это в symfony). Что вы, ребята, думаете, есть ли у вас какие-либо предложения, чтобы сделать роли пользователей более гибкими, когда они добавляются или удаляются.

Кроме того, что является лучшим способом отображения страницы на основе ролей пользователя, так как я хочу, чтобы некоторые элементы были скрыты в соответствии с ролями. Должен ли я сравнивать роль на каждой странице и скрывать элементы на каждой странице? Есть ли лучшее решение?

Прошу пролить свет на них.

благодаря

Related of "Создание пользовательских ролей"

Плагин sfDoctrineGuard (http://www.symfony-project.org/plugins/sfDoctrineGuardPlugin) – довольно комплексный способ обработки аутентификации пользователей, групп и учетных данных. Пользователи могут устанавливать разрешения как по отдельности, так и в группе, и доступ к определенным разделам страниц или целым действиям может быть ограничен на основе этих разрешений. Вы можете установить новые учетные данные пользователя в самом коде контроллера, например

<?php $this->getUser()->setCredential('editor'); ?> 

И убедитесь, что пользователь имеет определенные разрешения в представлениях:

 <?php if ($sf_user->hasCredential('editor')) { // stuff only for editors } ?> 

На этой странице есть много дополнительной информации о плагине, не охватываемом файлом readme – http://trac.symfony-project.org/wiki/sfGuardPluginExtraDocumentation (хотя это относится к Propel, а не к Doctrine). Кроме того, следующая серия коротких обучающих программ довольно полезна:

http://www.finalconcept.com.au/article/view/symfony-user-management-sfdoctrineguard-installation

http://www.finalconcept.com.au/article/view/symfony-user-management-sfdoctrineguard-administration

http://www.finalconcept.com.au/article/view/symfony-user-management-sfdoctrineguard-securing-actions

И страница руководства Symfony для пользователей:

http://www.symfony-project.org/jobeet/1_4/Doctrine/en/13