今天,总结一下,RBAC(基于角色的访问控制),直白一点,就是权限管理。说到这,不得不“小叙”一下,我第一次

开发权限管理功能的“插曲”。第一次做这个,真的不会,我只知道“有点印象”,当时任务落到我的身上,主管也是说个

大概,至于“大概”是什么,基本可以忽略不计,没法,没有参考,只有到处找资料,翻资料,后来还是我在网上找到了

相关的视频,(说到技术视频,我不得不说,就算下载很多的视频,别人就算讲的再好,不一定挪到你那里就好使,

就好比,说与做是两码事一样,别人讲视频其实是加深别人对知识点的理解,跟咋们听众盆友冒油半毛钱的关系,唯有

下功夫,反复敲打键盘,做到熟练,至于生巧,那又是另一重境界。),呵呵呵,我是幸运的,按照视频的讲解,基本上,

“copy”过来,还算顺利,当然,中间也有一点“坑”,最后还是趟过了。

说到RBAC,不得不说的五个表:用户表(user),用户角色表(role_user),角色表(role),节点表(node),权限表(access)

其中的关系是,

用户角色表是用户表与角色表产生交集的关联表,权限表也称节点角色表,它是角色表与节点表关联的表。

好的,先认识一下这些表的表结构:

/*
-- --------------------------------------------------------
CREATE TABLE IF NOT EXISTS `think_access` (
  `role_id` smallint(6) unsigned NOT NULL,
  `node_id` smallint(6) unsigned NOT NULL,
  `level` tinyint(1) NOT NULL,
  `module` varchar(50) DEFAULT NULL,
  KEY `groupId` (`role_id`),
  KEY `nodeId` (`node_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

CREATE TABLE IF NOT EXISTS `think_node` (
  `id` smallint(6) unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar(20) NOT NULL,
  `title` varchar(50) DEFAULT NULL,
  `status` tinyint(1) DEFAULT '0',
  `remark` varchar(255) DEFAULT NULL,
  `sort` smallint(6) unsigned DEFAULT NULL,
  `pid` smallint(6) unsigned NOT NULL,
  `level` tinyint(1) unsigned NOT NULL,
  PRIMARY KEY (`id`),
  KEY `level` (`level`),
  KEY `pid` (`pid`),
  KEY `status` (`status`),
  KEY `name` (`name`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8;

CREATE TABLE IF NOT EXISTS `think_role` (
  `id` smallint(6) unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar(20) NOT NULL,
  `pid` smallint(6) DEFAULT NULL,
  `status` tinyint(1) unsigned DEFAULT NULL,
  `remark` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `pid` (`pid`),
  KEY `status` (`status`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 ;

CREATE TABLE IF NOT EXISTS `think_role_user` (
  `role_id` mediumint(9) unsigned DEFAULT NULL,
  `user_id` char(32) DEFAULT NULL,
  KEY `group_id` (`role_id`),
  KEY `user_id` (`user_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
*/

ThinkPHP项目笔记之RBAC(权限)基础篇的更多相关文章

  1. ThinkPHP项目笔记之RBAC(权限)补充篇

    这里,主要补充的是配置以及相关代码问题. <?php return array( //'配置项'=>'配置值' 'RBAC_SUPERADMIN' => 'admin',//超级管理 ...

  2. ThinkPHP项目笔记之RBAC(权限相关视频讲解篇

    感谢互联网,只要你愿意找,没有找不到的免费资源 网址:http://www.studyfox.cn/143.html

  3. ThinkPHP项目笔记之RBAC(权限)中篇

    现在,说说添加权限,权限管理列表 c.添加权限

  4. ThinkPHP项目笔记之RBAC(权限)上篇

    当理清这5个表的关系,接下来,就是功能介绍了.

  5. ThinkPHP项目笔记之RBAC(权限)下篇

    接着谈谈:添加用户以及用户管理列表 e.添加用户

  6. 嵌入式Linux学习笔记之第一阶段---基础篇

    嵌入式Linux学习分五个阶段 第一阶段: 01嵌入式环境搭建初期 02C语言语法概述 03C语言内存操作 04c语言函数 05linux基础 06gun基础 第二阶段: 01-linux之io系统编 ...

  7. 白日梦的Elasticsearch笔记(一)基础篇

    目录 一.导读 1.1.认识ES 1.2.安装.启动ES.Kibana.IK分词器 二.核心概念 2.1.Near Realtime (NRT) 2.2.Cluster 2.3.Node 2.4.In ...

  8. Linux学习笔记14-权限基础

    权限基础 权限:操作系统限制对资源访问的机制,一般分为读.写.执行.每个文件都拥有特定权限,通过所属用户及所属组来限制哪些用户.组可以对特定文件进行什么样的操作. 每个进程都是以某个用户的身份运行,进 ...

  9. ThinkPHP项目笔记之MVC篇

    题记:网上关于ThinkPHP的介绍,不计其数,有文档,示例,代码片段以及其他等.毕竟自己掌握的,才是自己的. 所以,趁着做的项目(当然用的是thinkphp框架)的余热,奋笔疾书,一个人的理解与拙笔 ...

随机推荐

  1. Linux下统计当前文件夹下的文件个数、目录个数(转)

    1) 统计当前文件夹下文件的个数 代码如下: ls -l |grep "^-"|wc -l 2) 统计当前文件夹下目录的个数 代码如下: ls -l |grep "^d& ...

  2. excel 根据单元格内容自动调整列宽

      excel 根据单元格内容自动调整列宽 CreateTime--2018年5月28日08:49:40 Author:Marydon 1.情景展示 单元格宽度超过了列宽 2.解决方案 第一步:同时选 ...

  3. webservice接口示例(spring+xfire+webservice)

      webservice接口示例(spring+xfire+webservice) CreateTime--2018年4月2日17:36:07 Author:Marydon 一.准备工作 1.1 ja ...

  4. 〖Qt编程〗Qt编程中的各种数据类型的相互转换

    char * 与 const char *的转换 char *ch1=”hello11″; const char *ch2=”hello22″; ch2 = ch1;//不报错,但有警告 ch1 = ...

  5. 卓有成效的团队建设经验与见解 Team Leader你会带团队吗?

    http://www.nowamagic.net/librarys/veda/detail/1955前言 这篇文章是写给Team Leader和往这个方向前进的人.也适合一般的程序员,对你们在团队合作 ...

  6. IO多路复用之poll

    1.基本知识 poll的机制与select类似,与select在本质上没有多大差别,管理多个描述符也是进行轮询,根据描述符的状态进行处理,但是poll没有最大文件描述符数量的限制.poll和selec ...

  7. 关于GridView Master-Detail 不支持明细属性为IEnumerable、IList问题

    默认状态下gridview不支持接口集合,即不支持属性类型为IEnumerable<T>或者扩展的IList<T>,只能乖乖的转成List等实体集合,这种取舍就是鱼和熊掌了,如 ...

  8. Linux find 命令概览

    Linux下find命令在目录结构中搜索文件,并执行指定的操作.Linux下find命令提供了相当多的查找条件,功能很强大.由于find具有强大的功能,所以它的选项也很多,其中大部分选项都值得我们花时 ...

  9. OC06 -- 字典

    一. 创建不可变字典的方式: //字典的字面量,前key后value NSDictionary *dic =@{@"1":@"2",@"3" ...

  10. zoj 1562 反素数 附上个人对反素数性质的证明

    反素数的定义:对于不论什么正整数,其约数个数记为.比如,假设某个正整数满足:对随意的正整 数.都有,那么称为反素数. 从反素数的定义中能够看出两个性质: (1)一个反素数的全部质因子必定是从2開始的连 ...