2012-04-11 148 views
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'); 
     } 
    } 

当我做出这样的指标和管理操作不工作?!

回答

0

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

所以在某处你的要求(可能是作为一个插件),你需要测试,如果登录用户当前访问您定义的资源,如果没有,做一些事情......

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