Групповые разрешения Symfony2 с ACL

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

Мы используем Symfony2 и FOSUserBundle.

Нам нравится, как работает система ACL, но мы не смогли найти способ применить ее к объекту Group.

Кто-нибудь делал что-то подобное с Symfony? Или у вас есть какие-либо предложения о том, как реализовать это другими способами?


person mokagio    schedule 16.08.2012    source источник


Ответы (1)


Согласно поваренной книге, вы можете использовать RoleSecurityIdentity вместо UserSecurityIdentity. Итак, насколько я понимаю, ваша роль — это ваша группа. Сейчас работаю над похожей проблемой. Когда я проделал с ним немного больше, я попытаюсь обновить его с помощью некоторых фрагментов кода.

А пока взгляните на: http://symfony.com/doc/current/cookbook/security/acl_advanced.html

РЕДАКТИРОВАТЬ:

Мы пошли в другом направлении и вместо этого используем больше разрешений для каждой системы действий контроллера. Таким образом, каждому действию контроллера присваивается имя разрешения с помощью аннотаций.

#SomeDomain/SomeBundle/Controller/SomeController.php
/**
 * @Permissions(perm="some.name.for.the.node")
 */
 public function indexAction(){ ... }

Затем у нас есть пакет разрешений со службой, которая проверяет разрешения при вызове функции контроллера. Нашим администраторам предоставляется графический интерфейс, который позволит им управлять разрешениями, которые будут иметь группы и отдельные пользователи.

Ознакомьтесь с этой сутью, которая вдохновила нас на то, что мы делаем: https://gist.github.com/1391850.

Я знаю, что это не та система контроля доступа, которую вы искали, но я просто подумал, что обновлю то, что мы делаем.

person Chase    schedule 11.01.2013
comment
Привет! Спасибо за интерес :) С нетерпением жду фрагментов - person mokagio; 13.01.2013
comment
Обновил мой ответ, извините, возможно, это не то, что вы ищете. - person Chase; 15.01.2013