我有一个具有 3 个不同用户角色的网站:访客(未注册)、会员和管理员。
我想限制对控制器的访问,如下所示。
AuthController -> 访客、成员、管理员
AdminController -> 管理员
成员控制器 -> 成员
有没有不使用 Zend_Acl 的简单方法?我真的不明白如何实际使用 Zend_Acl。
我有一个具有 3 个不同用户角色的网站:访客(未注册)、会员和管理员。
我想限制对控制器的访问,如下所示。
AuthController -> 访客、成员、管理员
AdminController -> 管理员
成员控制器 -> 成员
有没有不使用 Zend_Acl 的简单方法?我真的不明白如何实际使用 Zend_Acl。
我发现本教程对于实现简单的 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())) {
我没有测试它,但它应该可以工作。
曾经有过一个官方前端控制器插件的提议,但遗憾的是没有太多结果。不过代码仍然可用,Zend DevZone 博客上有一个教程。
查看 ZF 2.0 即将发生的更改可能是值得的,他们根据对提案的一些回复更改了 Access 部分。