2017-09-01 10:54:38 2713次浏览 5条回答 2 悬赏 200 金钱

$auth = Yii::$app->authManager;

    // 添加 "createPost" 权限
    $createPost = $auth->createPermission('createPost');
    $createPost->description = 'Create a post';
    $auth->add($createPost);

    // 添加 "updatePost" 权限
    $updatePost = $auth->createPermission('updatePost');
    $updatePost->description = 'Update post';
    $auth->add($updatePost);

    // 添加 "author" 角色并赋予 "createPost" 权限
    $author = $auth->createRole('author');
    $auth->add($author);
    $auth->addChild($author, $createPost);

    // 添加 "admin" 角色并赋予 "updatePost"
    // 和 "author" 权限
    $admin = $auth->createRole('admin');
    $auth->add($admin);
    $auth->addChild($admin, $updatePost);
    $auth->addChild($admin, $author);

    // 为用户指派角色。其中 1 和 2 是由 IdentityInterface::getId() 返回的id (译者注:user表的id)
    // 通常在你的 User 模型中实现这个函数。
    $auth->assign($author, 2);
    $auth->assign($admin, 1);

上面是权威指南的代码,我想问一下上面写的createPost是指的控制器里的方法还是说控制器,假如说不同的控制器里面的方法名称都差不多或者有重复的怎么办?求大神

最佳答案

  • Jeen 发布于 2017-09-10 12:47 举报

    首先,从思想上不要把RBAC想的太神秘。

    说白了,它其实就是类似,你有某个锁的钥匙,然后你才能打开它,一样的道理。

    RBAC文档样例中的 createPost 也是一个钥匙。至于锁要放在哪边,就看你的业务逻辑了,可以只用一次 也可以多个地方用一个锁。

    由于常见的业务都跟 用户 和 控制器 相关,所以我们才会习惯性的把 控制器路由的路径(比如 /module/controller/action 之类的) 设置为钥匙(权限名称)。
    这样,当你访问某个控制器时,没钥匙,就会提示权限不足。

    建议多结合框架进行测试,验证之后 心里就有底了 ;)

    觉得很赞
  • 回答于 2017-09-01 12:42 举报

    createPost 就是一个 Permission 的名字而已

    1 条回复
    回复于 2017-09-11 09:17 回复

    谢谢了 回答简洁精准

  • 回答于 2017-09-01 13:08 举报

    可以用控制器和方法名结合!仅仅是一个名称而已,只要你知道他是表示那个控制器那个方法就可以了。

    1 条回复
    回复于 2017-09-11 09:16 回复

    谢谢 看懂了

  • 回答于 2017-09-01 17:11 举报

    $createPost 的值可以是角色可以是权限可以是url路由,保存在auth_item表里,其中的name是PRIMARY,不能重复

    4 条回复
    回复于 2017-09-01 17:20 回复

    @楼主,你说的 ‘控制器里的方法还是说控制器 ’ 指 控制器里的方法 即url路由,是不会有重复的,同文件不能有相同方法名, 不同文件就更不用说了把

    回复于 2017-09-11 09:16 回复

    谢谢 看明白了

    回复于 2017-11-13 10:00 回复

    嗯嗯。平时可以多看看库名和代码的联系

    回复于 2017-11-13 10:03 回复

    嗯嗯。平时可以多看看库名和代码的联系

  • 回答于 2017-11-13 10:02 举报

    嗯嗯。平时可以多看看库名和代码的联系

您需要登录后才可以回答。登录 | 立即注册
郝立国
总监

郝立国

注册时间:2017-02-09
最后登录:2024-01-11
在线时长:77小时3分
  • 粉丝6
  • 金钱2925
  • 威望110
  • 积分4795

热门问题