2018-01-23 16:27:37 2350次浏览 4条回答 1 悬赏 50 金钱

我用的rbac来控制权限,现在我们可以控制某个角色拥有某个权限,这个权限呢一般是对应的路由controller/action,比如现在有个查询权限对应SiteContoller/searchAction这个路由,有两个角色admin和user都有这个权限,但是区别是,admin可以查询所有的字段,而user只能查询某几个字段的内容。如果说在查询的时候判断一下当前用户是否是admin或者是user来控制权限,但是角色是用户自定义创建的,可能叫admin也可能叫manager,还可能很多其他角色都有这个权限。所以怎么灵活处理呢?

  • 回答于 2018-01-23 16:37 举报

    rbac里面有个东西叫rule

    1 条回复
    回复于 2018-01-23 17:22 回复

    我也在看rule来怎么解决,能再指点一下吗,我没想到具体的解决方法?

  • 回答于 2018-01-24 17:00 举报

    44780-yuhanyo

    1 条回复
    回复于 2018-03-11 21:59 回复

    这是啥意思?

  • 回答于 2018-01-25 01:22 举报

    再新增权限不是就可以了吗?

    比如查看所有字段的权限,则 new Permission 实例设置 name='all_fields' 赋予 admin 角色;

    比如查看部分字段的权限,则 new Permission 实例设置 name='some_fields' 赋予 user 角色;

    判断举例:

    if($authManager->checkAccess($uid,'all_fields'){
        return '全字段的数据';
    }elseif($authManager->checkAccess($uid,'some_fields'){
        return '部分字段的数据';
    }
    
  • 回答于 2018-03-01 11:21 举报

    以前做过的一个后台,所有报表表头都可以针对用户进行显示。当时做法是加一个表头权限控制,然后主要修改代码就在GridView。

    2 条回复
    回复于 2018-03-09 14:22 回复

    这也是一种办法,但是如果采用rules的话怎么实现呢

    回复于 2018-03-11 18:21 回复

    你们当时是还单独存储这些表头吗,不同的表头权限对应不同的表头列表,然后把表头权限再赋给某一个角色?

您需要登录后才可以回答。登录 | 立即注册
齐天大圣
主管

齐天大圣 北京

注册时间:2016-02-24
最后登录:2020-06-05
在线时长:18小时30分
  • 粉丝6
  • 金钱550
  • 威望0
  • 积分730

热门问题