В чем разница между ACL и пользовательскими ролями в Symfony2
Я новичок в symfony2, и я не согласен с условиями и тем, что используется для них.
может кто-нибудь объяснить, в чем разница между
ACL
Роли
Группы
Ответ 1
Давайте рассмотрим самый простой пример: приложение Blog (снова).
При создании приложения для блога вам часто требуется аутентифицировать пользователей и разрешать им выполнять определенные действия, например:
авторизуйте Боба, чтобы добавить нового участника в блог
разрешить Алисе создать новое сообщение в блоге
разрешить Алисе редактировать собственное сообщение в блоге
разрешить Бобу удалять сообщение в блоге Алисы
Что такое роль
Роль представляет набор разрешений, жестко закодированных в вашем приложении.
Когда вы проверяете, разрешено ли пользователю добавлять нового участника в блог, ваш код проверяет, имеет ли текущий пользователь роль "ROLE_ADMIN".
Когда пользователь принадлежит к группе, она обычно имеет право на набор ролей.
Алиса принадлежит группе "Авторы", поэтому у нее есть роли ROLE_STATS (она разрешала видеть статистику блога) и ROLE_POST (она разрешала публиковать новую запись в блоге).
Списки управления доступом полезны, когда вам необходимо принять решение о авторизации на основе в роли + объект домена.
Алисе разрешено редактировать записи в блогах, написанные ею только. Чтобы проверить это разрешение, вам нужны Alice Roles и модель Post, которую она пытается редактировать.
Документация по Symfony по спискам ACL также довольно понятна.
О, и Бобу разрешено редактировать все записи в блоге, потому что у него есть ROLE_ADMIN. Решение здесь основано только на роли.