Yii中基于角色的访问控制(RBAC)的使用

这篇博客介绍了Yii框架如何使用基于角色的访问控制(RBAC)进行权限管理。通过RBAC,开发者可以更方便地控制不同角色用户的权限。文章提到了授权过滤器accessControl的工作原理,并详细阐述了Yii的RBAC结构,包括操作、任务和角色的层次关系。作者推荐使用SRBAC扩展来简化RBAC的初始化和管理,该扩展可以自动生成任务和操作,并提供图形化界面。最后,博主提到可以通过数据库直接管理用户、角色、任务和操作的关联。
摘要由CSDN通过智能技术生成

在开发一个有多种用户的网络应用时,对权限的判断总是一个很麻烦的事情。

Yii支持RBAC(Role-Based Access Control),结合filter,就给我们提供了非常简单方便的权限控制方法。

其实RBAC的原理很简单。

先梳理一下默认的Yii的授权filter:accessControl。它是根据accessRules按照用户的身份(users)来验证并授权的,默认的有*(任何用户),@(通过登录验证的用户),admin(管理员)。通过一系列这些accessRules,指定了这三种身份用户的各自可调用的action的权限。

而RBAC和默认的按照users的原理一样。通过指定”roles”来限定对应角色用户的可用action的权限。用”roles”替换”users”即可,因为Yii的accessControl是支持roles的。通过这种方式,在Contoller内部,通过指定accessRules就可以控制权限。在其他地方,比如控制一些view的显示的时候,可以用Yii::app()->user->checkAccess(role)来进行权限判断。

RBAC本身也有特别之处。看官方的一段原话:

在Yii的RBAC的一个基本概念是authorization item(授权项目)。一个授权项目是一个做某事的许可(如创造新的博客发布,管理用户)。根据其粒度和targeted audience, 授权项目可分为operations(行动),tasks(任务)和 roles(角色)。角色包括任务,任务包括行动,行动是许可是个原子。 例如,我们就可以有一个

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值