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了。去检查一下我们的配置是否正常吧,呵呵
From: http://blog.csdn.net/sunwaymike/article/details/6629047
Yii之权限管理扩展 srbac的更多相关文章
- Laravel Entrust 权限管理扩展包的使用笔记
简介 Entrust 是一个简洁而灵活的基于角色进行权限管理的 Laravel 扩展包.针对 Laravel 5,官方推荐的安装版本是 5.2.x-dev.它的详细使用方法请查看 Entrust Gi ...
- Yii的权限管理rbac
1.首先我们要在配置文件的组件(component)里面配置一下 Rbac 在对应项目下的config/main.php或者config/main-local.php下添加 'authManager' ...
- Yii框架中使用SRBAC作为权限管理模块时遇到的问题
Yii框架中使用SRBAC作为权限管理模块时遇到的问题 看到Yii中提供RBAC的插件,SRBAC,就想用用. 结果按照手册上的安装办法,整来整去,安装完了,可就是进不了权限管理界面. 最后想到, ...
- YIi 权限管理和基于角色的访问控制
验证和授权(Authentication and Authorization) 定义身份类 (Defining Identity Class) 登录和注销(Login and Logout) 访问控制 ...
- ASP.NET MVC+EF框架+EasyUI实现权限管理系列(16)-类库架构扩展以及DLL文件生成修改和用户的简单添加
原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(16)-类库架构扩展以及DLL文件生成修改和用户的简单添加 ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇) ...
- Oracle 表空间和用户权限管理
一. 表空间 Oracle数据库包含逻辑结构和物理结构. 数据库的物理结构指的是构成数据库的一组操作系统文件. 数据库的逻辑结构是指描述数据组织方式的一组逻辑概念以及它们之间的关系. 表空间是数据库逻 ...
- struts2学习之旅三 权限管理和导航设计
1,权限管理的db设计和dao实现,尽量简单快速有效: db的设计如下:权限按照角色来赋给用户: 权限对应每一个具体的功能,有菜单级别的,有导航级别的,还有页面级别的功能: 涉及到权限的敏感操作一般都 ...
- RBAC权限管理
RBAC(Role-Based Access Control,基于角色的访问控制),就是用户通过角色与权限进行关联. 简单地说,一个用户拥有若干角色,每一个角色拥有若干权限. 这样,就构造成“用户-角 ...
- 基于EasyUI Treegrid的权限管理资源列表
1. 前言 最近在开发系统权限管理相关的功能,主要包含用户管理,资源管理,角色管理,组类别管理等小的模块.之前的Web开发中也用过jQueryEasyUI插件,感觉这款插件简单易用,上手很快.以前用到 ...
随机推荐
- shell脚本修复MySQL主从同步
发布:thebaby 来源:net [大 中 小] 分享一例shell脚本,用于修改mysql的主从同步问题,有需要的朋友参考下吧. 一个可以修改mysql主从同步的shell脚本. 例子 ...
- Omnithreadlibary学习(2)-IOmniTask异步执行
1.使用 procedure Parallel.Async(task: TProc; taskConfig: IOmniTaskConfig); 匿名委托访问网站 program main; {$AP ...
- Prism vs MvvmCross
Prism vs MvvmCross 在上一篇Xamarin开发环境及开发框架初探中,曾简单提到MvvmCross这个Xamarin下的开发框架.最近又评估了一些别的,发现老牌Mvvm框架Prism现 ...
- JVM 学习笔记(一)
JVM ----Java Virtual Machine (熟称:JAVA虚拟机),JVM 在执行JAVA程序的过程中将内容划分为若干个区域,其有各自的用途和管理机制.如下图: 1. 程序计 ...
- BZOJ 1612: [Usaco2008 Jan]Cow Contest奶牛的比赛
Description FJ的N(1 <= N <= 100)头奶牛们最近参加了场程序设计竞赛:).在赛场上,奶牛们按1..N依次编号.每头奶牛的编程能力不尽相同,并且没有哪两头奶牛的水平 ...
- 将excel数据导入内表的函数
call function 'TEXT_CONVERT_XLS_TO_SAP' exporting i_tab_raw_data = lt_raw "开始行 ...
- HTML5安全:CORS(跨域资源共享)简介
前言:像CORS对于现代前端这么重要的技术在国内基本上居然很少有人使用和提及,在百度或者Google上搜索CORS,搜到的中文文章基本都是另外一种卫星定位技术CORS的介绍,让我等前端同学情何以堪(对 ...
- phpStorm 快捷键收集以及配色方案
仅收集我在开发过程中觉得对我个人很有帮助的 ctrl + e ;查看最近打开的工程文件 ctrl+shift+n比如要跳转到templates/default/index.html基本上输入te/de ...
- EasyUI 调用getSelections方法只能获取到一行的原因
$('#tt').datagrid({ url: 'GetDataJosn', title: 'DataGrid', width: 800, height: 300, pageSize: 10, id ...
- 编写优质嵌入式C程序
前言:这是一年前我为公司内部写的一个文档,旨在向年轻的嵌入式软件工程师们介绍如何在裸机环境下编写优质嵌入式C程序.感觉是有一定的参考价值,所以拿出来分享,抛砖引玉. 转载请注明出处:http://bl ...