0

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

我这样做

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'); 
        }
    }

当我这样做时,索引和管理操作不起作用?!

4

1 回答 1

0

您的 ACL 不会自动直接绑定到您的控制器/操作。你需要这样设置,如果你想要的话。

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

if(!$acl->isAllowed($users_role, $resource_they_want_to_access))
{
     // go away, display access denied page etc
}
于 2012-04-11T13:08:48.437 回答