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