搜索
系统检测到您的用户名不符合规范:

上课了:thinkPHP的RBAC权限管理

浏览:2256 发布日期:2017年06月16日 分类:用法示例 关键字: Thinkphp
上课了:thinkPHP的RBAC权限管理
thinkphp自带一个权限类:RBAC.class.php,里面有生成表的create table语句,也就是它的数据库设计,还有一些方法,比如getAccessList(),可以根据管理员ID号获得权限节点。
1、涉及到的表有五个,为了方便理解,可以总结为:
用户表(user):顾名思义,就是用户了,比如admin、张三、李四、王五
角色表(role):顾名思义,就是定义好的角色,比如财务管理员、文章管理员、产品管理员
用户角色关系表(user_role):顾名思义,就是将用户和角色对应起来的表,看它的表结构,只有role_id(角色id)和user_id(用户id)两个字段
角色节点表(access):权限控制,也叫权限表,就是该角色(role)能控制哪些节点(node)。level字段对应node表的level字段。
这样就好理解了,其实就是用户、角色、节点三块。
先定义某个角色有权操纵某些节点,就是role表(角色)和node表(节点)和access表(权限)三个表的关系,这是核心部分,access又是核心中的核心。
然后,用户表可以单独和角色表挂钩,这就是user表和role表和user_role表的关系。
这样,就间接定义了哪些用户可以操纵哪些节点(模块)。
2、实际运行的时候,用户的所有可以操作的节点,可以记录到session当中,比如在初始化方法中写下这一句:
$_SESSION[‘rbac’]=RBAC::getAccessList($adminId);
这样打印session的时候,可以看到
[rbac] => Array
(
[ADMIN] => Array
(
[INFORMATION] => Array
(
[ADD] => 1
[MODIFY] => 2
[DEL] => 3
)
[PRODUCT] => Array
(
...
)
类似这样的数组结构。
最后需要注意的一点是RBAC的配置语句,可以到网上或者官网查看相关的例子。
评论() 相关
后面还有条评论,
评论支持使用[code][/code]标签添加代码
您需要登录后才可以评论 登录 | 立即注册
收藏
yuyu5
积分:83 等级:LV0
热点推荐
(追記) (追記ここまで)
最新更新

我们

合作

网站

信息

ThinkPHP 是一个免费开源的,快速、简单的面向对象的 轻量级PHP开发框架 ,创立于2006年初,遵循Apache2开源协议发布,是为了敏捷WEB应用开发和简化企业应用开发而诞生的。ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,也注重易用性。并且拥有众多的原创功能和特性,在社区团队的积极参与下,在易用性、扩展性和性能方面不断优化和改进,已经成长为国内最领先和最具影响力的WEB应用开发框架,众多的典型案例确保可以稳定用于商业以及门户级的开发。

AltStyle によって変換されたページ (->オリジナル) /