1.thinkphp 权限分析
一、权限分析
用户表 user
角色表 role
权限表 node
think_acces
role_id 用户组id
node_id 节点ID
level 节点等级
pid 父级ID
THINK_ACCESS PID 加个字段
think_user 用户表
RBAC中文权称,基于角色权限访问控制
Role-based Access Control
Full扩展包。
财务
安全拦截器
认证管理器(识别不同的身份,你的用 户名和密码,权限是否在授权范围内)
决策访问管理器(即时模式,登陆模式)
运行身份管理(单身份,多身份管理B/S)
1,判断当前的操作(项目【应用】,模块,动作(操作))是否需要认证
2,如果需要认证(是判断用户是否登陆---跳至委托认证管理器验证身份,判断用户是否有权限访问---直接跳至无权访问页)
3,委托认证来验证用户身份
4,获取该用户的权限列表
5,判断用户是否有权限访问
THINKPHP当中的RBAC难点在于,数据库设计。而不在乎代码如何写。你都可以不用写多少代码。
很多人在数据库结构,想不明白,项目【应用】,模块,动作
节点(项目 1,模块 2,方法 3)之间的关系,你先得让用户能访问项目,模块,方法
(他们之间的关系,我们就叫做节点,如果说你需要将所有的节点全部可控制,
你就需要将所有的项目,项目下的模块,模块下的方法,全部加入到节点表当中去)
1.thinkphp 权限分析的更多相关文章
- Linux权限分析
我看过网上的一些有关Linux的权限分析,有些说的不够清楚,另外一些说的又太复杂.这里我尽量简单.清楚的把Linux权限问题阐述明白,Linux权限没有那么复杂. Linux权限问题要区分文件权限和目 ...
- thinkphp日志分析
#!/usr/bin/perl -w use strict; use warnings; use Tie::File; #### # Thinkphp日志分析 # 日志基本格式:{$now} &quo ...
- FastAdmin 前台会员分组的权限分析
FastAdmin 前台会员分组的权限分析 之前有用户反馈前台用户组权限无法选中无子节点的节点 1. 其实这个理解是不对的,是无法选中菜单可视的节点. 从这里 UserRule.php 可能可以看出. ...
- thinkphp权限管理Rbac实例
首先,先建立Rbac那五张表(用户表,角色表,节点表,权限表,角色-用户表),后面四张可以在thinkphp中Rbac类里直接复制. 第二步,根据需求往那五张表里插入数据,注意:节点表里的节点名称一定 ...
- 【Java EE 学习 75 上】【数据采集系统第七天】【二进制运算实现权限管理】【权限分析和设计】
一.权限计算相关分析 1.如何存储权限 首先说一下权限保存的问题,一个系统中最多有多少权限呢?一个大的系统中可能有成百上千个权限需要管理.怎么保存这么多的权限?首先,我们使用一个数字中的一位保存一种权 ...
- Android 外部存储权限分析
不知道你有么有发现.来自菜鸟的成长史:http://blog.csdn.net/zjbpku/article/details/25161131. KitKat之后的版本号不再支持用户对外置SDcard ...
- linux下进程权限分析
转自http://blog.chinaunix.net/uid-27105712-id-3349522.html 在linux下,关于文件权限,大部分人接触比较多,也比较熟悉了解.但是对进程权限一般知 ...
- MySQL存储过程权限分析
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://huanghualiang.blog.51cto.com/6782683/1216 ...
- Linux特殊权限分析(第二版)
SetUID[权限值=4] 问题:为什么普通用户可以修改自己的密码? ll $(which passwd) 1.SetUID:当一个可执行程序/命令具有SetUID 权限,用户执行这个程序时,将以这个 ...
随机推荐
- html 中几次方,平方米,立方米.
m的n次方表示法:mn m<sup>n</sup> 10<sup>6</sup> m的n次方表示法:mn m<sub>n</sub&g ...
- docker桥接
Ifconfig docker0 down Brctl delvr docker0 进入到网卡配置文件 修改eth0网卡参数 加入BIRDGE=br0 创建一个br0 其中ip为真实机的ip 更改do ...
- .NET破解之爱奇迪(二)
爱奇迪的其他系统软件我不感兴趣,但这个Database2Sharp看起来好像很有用的. 官网介绍: 一个简单点击几次鼠标就能完成一周代码量的代码生成工具,效率惊人.友好体贴,真正的开发好伴侣,提供了对 ...
- HTML5 <input> required
要求在提交数据之前必须填写该字段,否则会提交不了 <form> <input type="text" id="msg" ...
- vagrant box各种命令汇总
最近在研究laravel,中间用到了vagrant 虚拟机管理工具,学习一下他的命令 vagrant box命令 用于管理boxes的命令,比如添加.删除等等. 此命令的功能主要通过以下子命令完成: ...
- spring spel表达式语言
一.通过bean的id对bean进行引用 1.对其他bean的引用 <property name="dept" value="#{dept}"/> ...
- C#调取java接口
1. public class APIRequest { //public static string commonUrl = @"http://192.168.2.186 ...
- windows下安装redis及其客户端
首先下载redis安装包:https://github.com/MSOpenTech/redis/releases 解压安装包到相应文件夹,任何盘符都行. 文件介绍:redis-server.exe: ...
- 【转帖】如何利用Spring Cloud构建起自我修复型分布式系统
http://zhidao.baidu.com/link?url=tSKwdn3wr8KUxWMteHmneFtY0KoNZBMK9Xy-RimsdISA4h2neAecgHqggBipz2w6nXr ...
- 如何读取xml文件,根据xml节点属性查询并输出xml文件
主要是应用SimpleXML和递归函数来根据key值来查询,并将结果以xml格式输出. <?php header("Content-type: text/xml"); //以 ...