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

相關文章
相關標籤/搜索