1

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

我想限制对控制器的访问,如下所示。

AuthController -> 访客、成员、管理员

AdminController -> 管理员

成员控制器 -> 成员

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

4

2 回答 2

1

我发现本教程对于实现简单的 Auth & ACL 方案非常有用。

它涉及创建前端控制器插件和自定义 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())) {

我没有测试它,但它应该可以工作。

于 2012-07-21T10:29:43.920 回答
0

曾经有过一个官方前端控制器插件的提议,但遗憾的是没有太多结果。不过代码仍然可用,Zend DevZone 博客上有一个教程。

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

于 2012-07-21T10:18:09.387 回答