我刚刚阅读了有关创建定义授权规则的操作的信息......本书中有一段代码如下
# protected/controllers/SiteController.php::actionSetup()
$auth = Yii::app()->authManager;
$auth->createOperation('createPage',"create a new page");
$auth->createOperation('updatePage',"update a page");
第一个参数是唯一指定操作的标识符...第二个是操作的描述....
现在我的问题是
操作附加的 ACTION 在哪里..它只包含名称和描述...... ??即使我将此操作分配给用户......规则将如何识别已分配给它的操作???
答案 0 :(得分:1)
您使用auth manager assign函数授予用户访问auth项的权限。 见http://www.yiiframework.com/doc/api/1.1/IAuthManager#assign-detail
E.g。
Yii::app()->authManager->assign('createPage', $idOfMyUser);
然后,您可以使用控制器中的访问规则来控制可以执行操作的人员
像:
public function accessRules()
{
array('allow',
'actions' => array('create'),
'roles' => array('createPage')),
array('deny'),
);
}
请注意,角色,操作和任务基本上是相同的,它们只是一种分离或摸索授权项目的方式