我在程序里建立了2个role
<?php $auth = Yii::app()->authManager; $auth->createRole("manager"); $role = $auth->createRole("admin"); $role->addChild("manager"); ?>
但是当我在controller里设置deny admin的时候,为什么manger还能访问, manager作为admin的child是不是这个时候也不应该能访问了
我在程序里建立了2个role
<?php $auth = Yii::app()->authManager; $auth->createRole("manager"); $role = $auth->createRole("admin"); $role->addChild("manager"); ?>
但是当我在controller里设置deny admin的时候,为什么manger还能访问, manager作为admin的child是不是这个时候也不应该能访问了
把你设置deny的代码贴出来,好吗?
你是deny user 还是 role?
<?php public function accessRules() { return array( array("deny", "actions" => array(), "users" => array("?"), ), array("deny", "actions" => array(), "roles" => array("admin"), ), ); } ?>
这个就是我的测试代码,role admin被deny了, 但是manager照样可以访问
deny好像不继承吧?继承应该是在checkAccess方法才体现出来。你查看一下deny的源码是否有继承关系。