语境: 我的问题与我正在开发的论坛几乎完全一样,其中有: 有权查看主题但无法回复或投票的访客 拥有足够代表权的成员可以编辑/投票其他线索,默认情况下,他们可以回复并享有与客人相同的特权 pipe理员几乎可以做任何事情 我希望这个ACL被应用到整个站点,默认情况下拒绝所有的资源。 我阅读了使用Zend_Acl的基础知识 – 基本上创buildangular色(guest,member,admin),并拒绝或允许这些angular色的资源(控制器,方法)。 该文档不是很明确,你应该如何在你的应用程序中实际实现acl代码,所以我去看看.. 马里克遇到了一个非常有用的stackoverflow 答案,在这个问题上stream露出一些亮点,但是由于我不熟悉,我仍然无法完全理解如何正确实施这个最好的实践。 海报在应用程序根目录中有一个静态文件configAcl.php ,用于初始化acl对象,添加angular色,在每个控制器之外创build一个资源,给予admin访问所有内容,除了pipe理员之外,还可以normal访问所有内容,并将acl对象存储registry供以后使用。 $acl = new Zend_Acl(); $roles = array('admin', 'normal'); // Controller script names. You have to add all of them if credential check // is global to your application. $controllers = array('auth', 'index', 'news', 'admin'); foreach ($roles as $role) { $acl->addRole(new Zend_Acl_Role($role)); […]