【问题标题】:Createoperation concept not clear (RBAC)CreateOperation概念不清楚(RBAC)
【发布时间】:2013-09-24 12:45:05
【问题描述】:

我刚刚阅读了关于创建定义授权规则的操作......书中有一段代码如下

# protected/controllers/SiteController.php::actionSetup()
$auth = Yii::app()->authManager;
$auth->createOperation('createPage',"create a new page");
$auth->createOperation('updatePage',"update a page");

第一个参数是唯一指定操作的标识符……第二个是操作的描述……

现在我的问题是

附加到操作的ACTION在哪里......它只包含名称和描述......??即使我将此操作分配给用户....规则将如何识别已分配给它的操作???

【问题讨论】:

    标签: php yii rbac


    【解决方案1】:

    您使用身份验证管理器分配功能来授予用户对身份验证项的访问权限。 见http://www.yiiframework.com/doc/api/1.1/IAuthManager#assign-detail

    例如

    Yii::app()->authManager->assign('createPage', $idOfMyUser);
    

    然后您可以使用控制器中的访问规则来控制谁可以执行操作

    喜欢:

       public function accessRules()
       {
             array('allow',
                'actions' => array('create'),
                'roles' => array('createPage')),        
             array('deny'),
          );
       }
    

    请注意,角色、操作和任务本质上是相同的,它们只是分离或探索身份验证项的一种方式

    【讨论】:

    • 实际上先生,您告诉我的确实很有帮助,但我要求 $auth->createOperation('createPage',"create a new page"); createpage 是我所做的这个操作的名称....或者它是我在控制器中所做的操作的名称....这是什么 createpage 这里???
    • 这是您用来检查访问权限的操作(AuthItem)的名称。
    • Yii::app()->authManager->assign('createPage', 'public');如果我有一个动作 dothis 并且我希望它在操作的帮助下将其分配给 public...我需要附加 dothis 先对createpage 操作进行操作,然后将其分配给public???
    猜你喜欢
    • 2020-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-27
    • 1970-01-01
    • 2016-10-03
    • 1970-01-01
    相关资源
    最近更新 更多