ThinkPHP中RBAC类的四种用法分析


Posted in PHP onNovember 24, 2014

本文实例讲述了ThinkPHP中RBAC类的四种用法。分享给大家供大家参考。具体方法如下:

第一类:放在登陆控制器的登陆操作中

1.RBAC::authenticate();

用于在用户表中查找表单提交的用户名的数据,实质上就是一条用户表查寻语句:

return M(modle)->where(array)->find();
这个操作有两个参数

a.array()数组的写法及作用和表查寻数组一样:

array('字段'=>'值','字段'=>array('条件','值'));

b.model就是表名,默认是配制参数

C('USER_AUTH_MODEL');
返回值是一条查询结果以一维数组承显。
注:它就是一个针对用户表的单条记录查寻方法,我们可以不用它,直接用查寻语句。

2.RBAC::saveAccessList();

将用户可以操控的应用名(组名),控制器名,操作名以一个三维数组的形势写入session。

参数是用户id,一般我们在用户登陆验证通过后,会将用户id写入session中的

C('USER_AUTH_KEY');

本方法中默认会拿$_SESSION(C('USER_AUTH_KEY'))这个参数;

第二类:放在公共控制器中(所有参加权限验证的控制器类全都要继于成这个类)

3.RBAC::AccessDecision();

用来判断当前用户对当前操控是否有权限,参数默认是应用名APP_NAME,如果是分组的模式,就得传入分组名GROUP_NAME

这里面调用了一个方法

RBAC::checkAccess();
用于验证当前控制器或操作是否参加本次判断.

注:有四个配制参数,需要我们写两个。

需要验证控制器:REQUIRE_AUTH_MODULE 需要验证操作:REQUIRE_AUTH_ACTION

不需要验证控制器:NOT_AUTH_MODULE 不需要验证操作:NOT_AUTH_ACTION

如果全写需要:在REQUIRE_AUTH_ACTION中写操作的同时必须在REQUIRE_AUTH_MODULE写其所属控制器。

如果全写不需要:在NOT_AUTH_MODULE中写了控制器,其控制器中的所有方法都将不需要验证。

如果独写NOT_AUTH_ACTION中的操作,则需要注意操作名重名的问题。

4.RBAC::checkLogin();

用来判断用户是否登陆。
注:登陆后的首页显示这个操作必须参加验证,所以每个角色都得加入这个操作的权限。

也可以不用这个方法,直接判断$_SESSION[C('USER_AUTH_KEY')]是否存在,不存在就跳转到登陆界面这样就可以让登陆后首页显示这个操作不参加验证。

希望本文所述对大家的ThinkPHP框架程序设计有所帮助。

PHP 相关文章推荐
收藏的PHP常用函数 推荐收藏保存
Feb 21 PHP
PHP MemCached高级缓存配置图文教程
Aug 05 PHP
php gzip压缩输出的实现方法
Apr 27 PHP
解析linux下安装memcacheq(mcq)全过程笔记
Jun 27 PHP
php对数组排序代码分享
Feb 24 PHP
php截取字符串之截取utf8或gbk编码的中英文字符串示例
Mar 12 PHP
PHP常用的缓存技术汇总
May 05 PHP
PHP is_subclass_of函数的一个BUG和解决方法
Jun 01 PHP
使用GD库生成带阴影文字的图片
Mar 27 PHP
Centos6.5和Centos7 php环境搭建方法
May 27 PHP
php防止sql注入的方法详解
Feb 20 PHP
PHP删除数组中特定元素的两种方法
Feb 28 PHP
thinkphp使用phpmailer发送邮件的方法
Nov 24 #PHP
php中base64_decode与base64_encode加密解密函数实例
Nov 24 #PHP
php常用字符串比较函数实例汇总
Nov 24 #PHP
PHP集成百度Ueditor 1.4.3
Nov 23 #PHP
php jsonp单引号转义
Nov 23 #PHP
php常用文件操作函数汇总
Nov 22 #PHP
ThinkPHP中公共函数路径和配置项路径的映射分析
Nov 22 #PHP
You might like
PHP发明人谈MVC和网站设计架构 貌似他不支持php用mvc
2011/06/04 PHP
PHP中usort在值相同时改变原始位置问题的解决方法
2011/11/27 PHP
PHP版本如何选择?应该使用哪个版本?
2015/05/13 PHP
WordPress中用于获取文章信息以及分类链接的函数用法
2015/12/18 PHP
YII中Ueditor富文本编辑器文件和图片上传的配置图文教程
2017/03/15 PHP
php如何实现数据库的备份和恢复
2020/11/30 PHP
jquery animate实现鼠标放上去显示离开隐藏效果
2013/07/21 Javascript
js每隔5分钟执行一次ajax请求的实现方法
2013/11/27 Javascript
jQuery根据ID获取input、checkbox、radio、select的示例
2014/08/11 Javascript
ES6使用let命令更简单的实现块级作用域实例分析
2017/03/31 Javascript
微信小程序 跳转方式总结
2017/04/20 Javascript
基于 Vue.js 之 iView UI 框架非工程化实践记录(推荐)
2017/11/21 Javascript
详解Vue2.0组件的继承与扩展
2018/11/23 Javascript
Vue中使用Lodop插件实现打印功能的简单方法
2019/12/19 Javascript
js 函数性能比较方法
2020/08/24 Javascript
[05:09]DOTA2-DPC中国联赛2月22日Recap集锦
2021/03/11 DOTA
python使用cookie库操保存cookie详解
2014/03/03 Python
python 实现删除文件或文件夹实例详解
2016/12/04 Python
python解析基于xml格式的日志文件
2017/02/25 Python
python的unittest测试类代码实例
2017/12/07 Python
python写入已存在的excel数据实例
2018/05/03 Python
python创建与遍历List二维列表的方法
2019/08/16 Python
Python input函数使用实例解析
2019/11/22 Python
使用jupyter notebook直接打开.md格式的文件
2020/04/10 Python
香港钟表珠宝首饰商城:OneMallTime网摩间
2016/10/14 全球购物
澳大利亚百货商店中销量第一的商务衬衫品牌:Van Heusen
2018/07/26 全球购物
The Kooples美国官方网站:为情侣提供的法国当代时尚品牌
2019/01/03 全球购物
银河香水:Galaxy Perfume
2019/03/25 全球购物
Pandora德国官网:购买潘多拉手链、戒指、项链和耳环
2020/02/20 全球购物
专科毕业生自我鉴定
2013/12/01 职场文书
乌鸦喝水教学反思
2014/02/07 职场文书
高考寄语大全
2014/04/08 职场文书
体育之星事迹材料
2014/05/11 职场文书
商业企业管理专业求职信
2014/07/10 职场文书
幼儿园六一主持词开场白
2015/05/28 职场文书
让世界充满爱观后感
2015/06/10 职场文书