- 相關(guān)推薦
thinkPHP的RBAC權(quán)限管理
如何進(jìn)行thinkPHP的rbac權(quán)限管理呢?下面是由百分網(wǎng)小編為大家整理的thinkPHP的RBAC權(quán)限管理,喜歡的可以收藏一下!了解更多詳情資訊,請(qǐng)關(guān)注應(yīng)屆畢業(yè)生考試網(wǎng)!
thinkPHP的RBAC權(quán)限管理:
thinkphp自帶一個(gè)權(quán)限類(lèi):RBAC.class.php,里面有生成表的create table語(yǔ)句,也就是它的數(shù)據(jù)庫(kù)設(shè)計(jì),還有一些方法,比如getAccessList(),可以根據(jù)管理員ID號(hào)獲得權(quán)限節(jié)點(diǎn)。
1、涉及到的表有五個(gè),為了方便理解,可以總結(jié)為:
用戶(hù)表(user):顧名思義,就是用戶(hù)了,比如admin、張三、李四、王五
角色表(role):顧名思義,就是定義好的角色,比如財(cái)務(wù)管理員、文章管理員、產(chǎn)品管理員
用戶(hù)角色關(guān)系表(user_role):顧名思義,就是將用戶(hù)和角色對(duì)應(yīng)起來(lái)的表,看它的表結(jié)構(gòu),只有role_id(角色id)和user_id(用戶(hù)id)兩個(gè)字段
角色節(jié)點(diǎn)表(access):權(quán)限控制,也叫權(quán)限表,就是該角色(role)能控制哪些節(jié)點(diǎn)(node)。level字段對(duì)應(yīng)node表的level字段。
這樣就好理解了,其實(shí)就是用戶(hù)、角色、節(jié)點(diǎn)三塊。
先定義某個(gè)角色有權(quán)操縱某些節(jié)點(diǎn),就是role表(角色)和node表(節(jié)點(diǎn))和access表(權(quán)限)三個(gè)表的關(guān)系,這是核心部分,access又是核心中的核心。
然后,用戶(hù)表可以單獨(dú)和角色表掛鉤,這就是user表和role表和user_role表的關(guān)系。
這樣,就間接定義了哪些用戶(hù)可以操縱哪些節(jié)點(diǎn)(模塊)。
2、實(shí)際運(yùn)行的時(shí)候,用戶(hù)的所有可以操作的節(jié)點(diǎn),可以記錄到session當(dāng)中,比如在初始化方法中寫(xiě)下這一句:
$_SESSION[‘rbac’]=RBAC::getAccessList($adminId);
這樣打印session的時(shí)候,可以看到
[rbac] => Array
(
[ADMIN] => Array
(
[INFORMATION] => Array
(
[ADD] => 1
[MODIFY] => 2
[DEL] => 3
)
[PRODUCT] => Array
(
...
)
類(lèi)似這樣的數(shù)組結(jié)構(gòu)。
最后需要注意的一點(diǎn)是RBAC的配置語(yǔ)句,可以到網(wǎng)上或者網(wǎng)查看相關(guān)的例子。
【thinkPHP的RBAC權(quán)限管理】相關(guān)文章:
thinkPHP實(shí)現(xiàn)的聯(lián)動(dòng)菜單功能03-04
ThinkPHP多表聯(lián)合查詢(xún)的常用方法06-18
Thinkphp 多語(yǔ)言功能完善04-13
Thinkphp的多語(yǔ)言功能完善05-05
ThinkPHP中redirect用法實(shí)例分析02-08