- 相關(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)限類:RBAC.class.php,里面有生成表的create table語句,也就是它的數(shù)據(jù)庫設(shè)計(jì),還有一些方法,比如getAccessList(),可以根據(jù)管理員ID號(hào)獲得權(quán)限節(jié)點(diǎn)。
1、涉及到的表有五個(gè),為了方便理解,可以總結(jié)為:
用戶表(user):顧名思義,就是用戶了,比如admin、張三、李四、王五
角色表(role):顧名思義,就是定義好的角色,比如財(cái)務(wù)管理員、文章管理員、產(chǎn)品管理員
用戶角色關(guān)系表(user_role):顧名思義,就是將用戶和角色對(duì)應(yīng)起來的表,看它的表結(jié)構(gòu),只有role_id(角色id)和user_id(用戶id)兩個(gè)字段
角色節(jié)點(diǎn)表(access):權(quán)限控制,也叫權(quán)限表,就是該角色(role)能控制哪些節(jié)點(diǎn)(node)。level字段對(duì)應(yīng)node表的level字段。
這樣就好理解了,其實(shí)就是用戶、角色、節(jié)點(diǎn)三塊。
先定義某個(gè)角色有權(quán)操縱某些節(jié)點(diǎn),就是role表(角色)和node表(節(jié)點(diǎn))和access表(權(quán)限)三個(gè)表的關(guān)系,這是核心部分,access又是核心中的核心。
然后,用戶表可以單獨(dú)和角色表掛鉤,這就是user表和role表和user_role表的關(guān)系。
這樣,就間接定義了哪些用戶可以操縱哪些節(jié)點(diǎn)(模塊)。
2、實(shí)際運(yùn)行的時(shí)候,用戶的所有可以操作的節(jié)點(diǎn),可以記錄到session當(dāng)中,比如在初始化方法中寫下這一句:
$_SESSION[‘rbac’]=RBAC::getAccessList($adminId);
這樣打印session的時(shí)候,可以看到
[rbac] => Array
(
[ADMIN] => Array
(
[INFORMATION] => Array
(
[ADD] => 1
[MODIFY] => 2
[DEL] => 3
)
[PRODUCT] => Array
(
...
)
類似這樣的數(shù)組結(jié)構(gòu)。
最后需要注意的一點(diǎn)是RBAC的配置語句,可以到網(wǎng)上或者網(wǎng)查看相關(guān)的例子。
【thinkPHP的RBAC權(quán)限管理】相關(guān)文章:
分析thinkphp常見路徑用法分析10-29
ThinkPHP中redirect用法實(shí)例分析09-26
Linux操作系統(tǒng)學(xué)習(xí)筆記權(quán)限管理09-26
ThinkPHP中create()方法自動(dòng)驗(yàn)證表單信息09-10
JAVA的數(shù)據(jù)權(quán)限設(shè)計(jì)05-28
理解Java訪問權(quán)限的控制07-22