我的网站有3个不同的用户角色:访客(未注册),成员和管理员。
我想按如下方式限制对控制器的访问。
AuthController - >嘉宾,会员,管理员
AdminController - >管理员
MemberController - >构件
有没有一种简单的方法可以不使用Zend_Acl?我真的不明白如何实际使用Zend_Acl。
答案 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部分。