我正在使用 zend 框架,在我的站点中,我有两种类型的用户,访客和登录用户,我有一个名为的控制器。书,里面有 3 个动作。添加、编辑和删除,
在我的zend acl中,我只将图书控制器的权限授予登录用户,在我的导航中,图书链接不显示给访客,而不是我想向登录用户显示所有3个子链接,并且只向访客添加子链接
像这样
登录用户
图书
添加
编辑
删除
和客人
图书
- 添加
问题是当我在 acl 中设置权限时,书籍链接完全没有向客人显示,
我的acl的这一部分
$this->addResource(new Zend_Acl_Resource('books'));
$this->addResource(new Zend_Acl_Resource('login'));
$this->addResource(new Zend_Acl_Resource('logout'));
$this->addRole(new Zend_Acl_Role('guest'));
$this->addRole(new Zend_Acl_Role('user'), 'guest');
$this->allow('guest', 'login');
$this->allow('user','logout');
$this->allow('user','books');
$this->deny('guest', 'logout');
$this->deny('user', 'login');
有什么方法可以设置操作级别的权限,或者我需要一个插件。我花了几个小时努力寻找解决方案,但找不到。请帮助......谢谢:(
更新 。
不要被名字迷惑,这不是默认的zend Acl.php。这是一个自定义的留在我的模型文件夹中
我的navigation.xml 的一部分
<configdata>
<nav>
<books>
<label>Books</label>
<controller>books</controller>
<action>index</action>
<resource>books</resource>
<pages>
<add>
<label>Add</label>
<controller>books</controller>
<action>add</action>
</add>
<edit>
<label>Edit</label>
<controller>books</controller>
<action>edit</action>
</edit>
<delete>
<label>Delete</label>
<controller>books</controller>
<action>delete</action>
</delete>
</pages>
</books>
</nav>
</configdata>