Zend Acl позволяет создавать ресурсы только в контроллере
Но контроллеры могут быть в любом модуле, а не только в модуле по умолчанию. Итак, я прочитал какую-то статью в Интернете, я нашел одну и попробовал это:
$acl -> addResource(new Zend_Acl_Resource("admin"));
$acl -> addResource(new Zend_Acl_Resource("admin:page"), "admin");
$acl -> addResource(new Zend_Acl_Resource("admin:posts"), "admin");
Но, тем не менее, когда я просматриваю соответствующие страницы, я получаю ошибки, касающиеся ресурса page
не найден, или posts
не найден.
Как настроить ресурс ACL для конкретного модуля?
Обновлять:
$acl -> addrole(new Zend_Acl_Role('guest'))
-> addrole(new Zend_Acl_ROle('admin'), 'admin');
$acl -> addResource(new Zend_Acl_Resource("page")); //controller with same name in admin module exists
$acl -> addResource(new Zend_Acl_Resource("admin"));
$acl -> addResource(new Zend_Acl_Resource("admin:page"), "admin");
$acl -> addResource(new Zend_Acl_Resource("admin:posts"), "admin");
$acl -> deny(null, null);
$acl -> allow('user', 'page', 'view');
$acl -> allow('admin', null);
page
(вместо этого следует проверитьadmin:page
). Скорее всего, ваша ошибка связана с тем, что вы добавляете разрешения (allow
илиdeny
) к ролям. - person adlawson   schedule 21.08.2011$acl -> allow("admin", null);
- person mrN   schedule 21.08.2011