码迷,mamicode.com
首页 > Web开发 > 详细

ThinkPHP项目笔记之RBAC(权限)基础篇

时间:2016-02-17 17:14:53      阅读:238      评论:0      收藏:0      [点我收藏+]

标签:

今天,总结一下,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(权限)基础篇

标签:

原文地址:http://www.cnblogs.com/wuheng1991/p/5195740.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!