Создание пользовательских ролей - PullRequest
1 голос
/ 24 ноября 2010

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

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

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

Пожалуйста, пролите немного света на них.

Спасибо

1 Ответ

2 голосов
/ 24 ноября 2010

Плагин 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 / ен / 13

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...