2018-11-15 21:31:42 1957次浏览 2条回答 0 悬赏 10 金钱

一个Permission可以绑定多个rule吗?

最近有个项目 有三种角色(role) 版块管理员,版块内小组管理员,普通用户.

权限验证的时候需要验证版块管理员属于这个版块可以管理所有小组,小组管理员需要属于这个小组.

问题:

  1. 一个rule验证是否属于版块(传入参数cate_id),一个rule验证是否属于小组(传入参数team_id).这两条rule能不能绑定给一个Permission?
  1. 假如能绑定,调用Permission时怎么传入参数,是需要把这两个参数全部传入然后yii自动根据role选择参数验证吗?

最佳答案

  • drodata 发布于 2018-11-18 20:20 举报

    不可以。

    角色和权限本质是 yii\rbac\Item, Rule 跟 Item 没有关系,Rule 只能依附在 Item 上存在,且一个 Item 只能有一个 Rule.

    2 条回复
    回复于 2018-11-20 19:53 回复

    假如一个父权限有两个子权限,这两个子权限各自有一个rule,需要怎么往里传参数呢?是在can()第二个参数数组那里传两个参数吗?

    回复于 2018-11-21 17:06 回复

    Rule 所需的额外参数需要在 can() 的第二个参数内传递,参数的个数也随意。你采用传 category_id, team_id 的做法也可以,但是可读性不是太好,推荐像官方那样直接传入 AR 模型实例的做法,即传入的是具体的版块或小组实例而不是 id. 你看 https://www.yiiframework.com/doc/guide/2.0/en/security-authorization#using-rules 里面的 AuthorRule 需要的参数是 $post 而非 post_id

  • 回答于 2018-11-16 13:06 举报

    没听过rule是啥意思。
    在rbac里我见过三个词:权限,角色,用户。
    权限和角色是多对多。
    角色和用户是多对多。

    1 条回复
    回复于 2018-11-16 22:55 回复

    rbac里面一般用的最多的就是rules吧 用户,角色,权限,规则

您需要登录后才可以回答。登录 | 立即注册
jorge
见习主管

jorge

注册时间:2016-10-31
最后登录:2024-03-01
在线时长:15小时25分
  • 粉丝0
  • 金钱90
  • 威望0
  • 积分240

热门问题