最近在研究 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了。去检查一下我们的配置是否正常吧,呵呵
相关推荐
去返网分享yii权限管理,yii权限,以及函数的讲解分析
yii rbac 插件模块,进行权限控制,非常方便
在工作中整理出的yii RBAC中Srbac的详细安装步骤,附截图。
srbac 可以直接安装使用,很容易实现权限管理
Yii框架调试辅助扩展yiidebugtb
主要介绍了Yii中srbac权限扩展模块工作原理与用法,结合实例形式分析了srbac模块的原理及权限操作的相关技巧,需要的朋友可以参考下
yii2 支付宝扩展插件
yii2 图片上传扩展插件
yiiframework 1 框架user扩展
yii2-elasticsearch, Yii 2 Elasticsearch扩展 Elasticsearch查询和 Yii 2的ActiveRecord这个扩展为 Yii框架 2.0提供了的集成。 它包括基本查询/搜索支持,还实现了 ActiveRecord Pattern,允许你在elasticsearch
yii2-redactor, Yii2框架的扩展 Redactor WYSIWYG yii2-redactorYii2框架的扩展 redactor 。安装安装这里扩展的首选方法是通过 Composer 。运行php composer.phar require --prefer-dist yiidoc/yi
yii framework 1 rbac扩展
xupload, Yii框架的XUpload扩展 :Yii框架插件的XUpload扩展这个存储库不再主动地维护。 如果你对维护它感兴趣,请通过一个问题联系。 Yii扩展页面扩展页演示文件上传插件,允许你的用户轻松地将文件上传到服务器。...
Yii2-Curl, 在 PHP cURL上,基于 Yii2 cURL扩展 yii2-curl扩展 Yii2的易于工作的cURL扩展,包括RESTful支持:POST获取头部放置补丁删除要求Yii2PHP 5.4 Curl和 php Curl安装安装安装这里
PHP YII 发送邮件扩展 使用方法: $mail = new YiiMailer(); //$mail->clearLayout();//if layout is already set in config $mail->setFrom('from@example.com', 'John Doe'); $mail->setTo(Yii::app()->params['...
yii生成api文档的扩展
yii2-image, 基于Kohana图像库的图像处理Yii2框架扩展 yii2-image简单易用的Yii2框架扩展,使用强大的Kohana图像库进行图像操作。 灵感由老yii扩展 http://www.yiiframework.com/extension/image/ 和Kohana图像库 ...
yii通过自身的扩展与QQwry纯真IP数据库连接,获取IP以及地理位置。很强大,之前通过看别人资料,自己整合了下,相当完善,新手完全按步骤操作。一步搞定!
PHP分享一个功能强大的yii框架的分类树扩展,网上看到的,供大家一起共同分享学习。