Список правил в Zend_ACL

Я использую zend_acl для управления списками ACL в моем веб-приложении. Чтобы иметь возможность отображать диалог «Управление разрешениями», мне нужна возможность получить определенные правила для следующих комбинаций:
- правила, установленные для конкретной роли на определенном ресурсе
- все правила, которые были установлены для ролей на конкретном ресурсе (у кого есть права на это)
- все правила, которые были установлены для конкретной роли на любом ресурсе (какие права есть у этой роли)
Чтобы иметь возможность отображать полный список, необходимо всегда должен быть дополнительный список с правилами, унаследованными от родительских ролей / ресурсов.

Вы знаете, как это решить?


person Quest    schedule 30.03.2011    source источник


Ответы (2)


Таким образом вы можете получить все роли и ресурсы.

$acl = new Application_Model_Acl();
$acl->getRegisteredRoles(); // roles instances
$acl->getRoles(); //array
$acl->getResources(); //array

Я думаю, вам нужно расширить Zend_Acl для получения «зарегистрированных ресурсов для каждой роли».

Если проект настолько "расширен", обычно я генерирую Acl динамически из базы данных, но я создал расширение Zend_Acl на своей стороне.

person MiPnamic    schedule 31.03.2011
comment
Просто напомню, что getRegisteredRoles устарела с версии 1.10, getRoles - это его замена. - person Jeff Busby; 31.03.2011
comment
Спасибо MiPnamic, сделаю так - person Quest; 10.05.2011

Для обзора мы создали таблицу, в которой по горизонтали расположены ресурсы, а по вертикали - роли (полученные как предполагал MiPnamic). А в теле таблицы есть нули а единицы (разрешено, запрещено). Работает нормально.

person Tomáš Fejfar    schedule 01.04.2011