授予角色访问权限

时间:2012-04-11 11:03:12

标签: zend-framework acl

我想授予特定操作的访问权限。我有模块:特权,模型:特权,动作:索引和管理。

我这样做

class My_ACL extends Zend_Acl {

    public function __construct() {

    $this->addRole(new Zend_Acl_Role('admin'));

    $this->add(new Zend_Acl_Resource('discussions'))
            ->add(new Zend_Acl_Resource("privileges"))
          ->add(new Zend_Acl_Resource('privileges:privilege:index'));
           // another way for adding actions.
        //  ->add(new Zend_Acl_Resource('privileges:privilege',array('index','manage'));

         $this->allow('admin', 'account')
         ->allow('admin', 'privileges:privilege'); 
        }
    }

当我这样做时,索引和管理操作无效?!

1 个答案:

答案 0 :(得分:0)

您的ACL不会自动与您的控制器/操作直接绑定。如果你想要的话,你需要以这种方式进行设置。

因此,在您的请求中(可能作为插件),您需要测试当前登录用户是否可以访问您定义的资源,如果没有,请执行某些操作...

if(!$acl->isAllowed($users_role, $resource_they_want_to_access))
{
     // go away, display access denied page etc
}