Yii之权限管理扩展 srbac

最近在研究 Yii 的权限控制功能,尽管Yii 自身提供了一个简单的权限管理,但是很多时候,我们还是需要对其做一点扩展。

在这里,我向大家推荐一个不错的扩展:SRBAC。

在Yii的官方网站的extension模块下,你可以发现SRBAC相对来说,下载量也算不少了 :)

这里,我就像大家简单介绍一下SRBAC里面一些需要注意的配置信息。

SRBAC主题环境的搭建,以及如何将其整合到我们具体的项目中(可以将其放到modules目录下,再在配置文件中进行一些配置)官方文档介绍得很详细,我就不赘述了。

在对照官方文档进行模块的整合以后,

有几个小注意点可能需要注意:

1. SRBAC模块自身会新建3张表(assignment,itenchildren,items)来满足其权限控制的需求。

     我们可以修改配置文件来自定义这三张表的名字,来使其更加符合我们自己项目的命名要求。

     修改config/main.php文件中对应的components的配置即可实现:

     

    // application components
    'components' => array(
        'authManager' => array(
            'class' => 'srbac.components.SDbAuthManager',
            'connectionID' => 'db',
            'itemTable' => 'items',
            'assignmentTable' => 'assignments',
            'itemChildTable' => 'itemchildren',
        ),

2. 在成功install SRBAC 模块之后,我们自然都会期待尽快地看一下它的权限管理功能的实现。

    在install的时候我们可以选择是否生成一些测试数据,当然,如果没有生成的话也不要紧,我们可以自己根据它的规则来手动进行一些数据的配置。

    在介绍数据的配置之前,我们需要对折个SRBAC模块的工作原理有一点了解:

     SRBAC模块是通过roles-- tasks-- operations 这三者之间的映射关系来实现权限控制的。

     users对应于我们的用户

     roles对应于我们系统需要的所有角色名称

     operations对应于我们我们需要进行权限管理的所有具体操作的名称(例如某个具体的action,我们只允许某个role来访问)

在SRBAC的主界面我们可以看到三个icon,分别对应于不同的操作。

我们就先来新建一些我们需要的数据信息(对应于第一个icon):

新建具体的operation:这里的operation的命名需要注意,必须是ControllernameActionname的格式。controller、action的名字组合,且二者的首字母都必须要大写。

新建具体的task:一个task可以对应于多个operation,我们可以按照相应的功能来命名task。例如:可以使用News Management 来表示新闻管理的task。这里的命名没有严格的格式要求,只要做到见名知意即可。

新建具体的roles:这个很简单,就是输入我们需要的角色而已。

ok,数据新建完毕。接下来我们就来到assign页面(对应于第二个icon),对具体的数据来进行映射设置了。

根据前面所说的,将operations分配给各个task,然后我们再将tasks分配给具体的role。

最后再给user指定roles。

到这一步,我们的权限配置基本就结束了。

这时,我们可以通过点击第三个icon来查看我们具体的用户的权限信息时候正确。

确认无误以后,我们就可以来进行我们的权限验证了。

不过,在此之前还有最后一步,我们要确认已经关闭了SRBAC的debug模式。

因为查看源代码我们会发现,如果debug模式是开启状态的话,我们的权限管理是不会起作用的。

可以到config/main.php来进行查看:

    'modules' => array(
        'srbac' => array(
            'userclass' => 'User',
            'userid' => 'id',
            'username' => 'username',
            'debug' => false,//confirm this field


到这一步,我们的权限模块就可以work了。去检查一下我们的配置是否正常吧,呵呵


Johnny


  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值