【发布时间】:2011-07-15 12:42:55
【问题描述】:
我正在使用 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>
【问题讨论】:
标签: zend-framework zend-navigation zend-acl php