Zend Framework - 控制对控制器的访问

时间:2012-07-21 09:45:58

标签: zend-framework

我的网站有3个不同的用户角色:访客(未注册),成员和管理员。

我想按如下方式限制对控制器的访问。

  

AuthController - >嘉宾,会员,管理员

     

AdminController - >管理员

     

MemberController - >构件

有没有一种简单的方法可以不使用Zend_Acl?我真的不明白如何实际使用Zend_Acl。

2 个答案:

答案 0 :(得分:1)

我发现this tutorial对于实现简单的Auth& ACL方案。

它创建了一个Front Controller插件&自定义Zend_ACL类。

编辑:回答评论中的问题

您可以在没有操作部分的情况下定义资源

    // Add some resources in the form controller
    $this->add(new Zend_Acl_Resource('error'));
    $this->add(new Zend_Acl_Resource('auth'));

    // Allow guests to see the error, login and index pages
    $this->allow('guest', 'error');
    $this->allow('guest', 'auth');

并且不要检查前插件中的操作

if(!$acl->isAllowed($user->role, $request->getControllerName())) {

我没有对它进行过测试,但它应该有效。

答案 1 :(得分:0)

曾经有一个proposal用于官方前置控制器插件,但遗憾的是没有多少出现。代码仍然可用,并且有一个tutorial on the Zend DevZone blog.

查看ZF 2.0即将发生的变化可能是值得的,他们根据对提案的一些回复更改了Access部分。