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

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

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

大概,至于“大概”是什么,基本能够忽略不计,无法,没有参考,只有处处找资料,翻资料,后来仍是我在网上找到了开发

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

就比如,说与作是两码事同样,别人讲视频实际上是加深别人对知识点的理解,跟咋们听众盆友冒油半毛钱的关系,惟有it

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

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

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

其中的关系是, 从这个图表中,咱们不难看出它们之间的联系。im

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

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

/*-- --------------------------------------------------------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;*/

相关文章
相关标签/搜索