麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 開發(fā) > ThinkPHP > 正文

thinkphp RBAC 詳解

2024-09-09 15:20:10
字體:
供稿:網(wǎng)友

最近用???thinkphp做了個(gè)項(xiàng)目,客戶今天又提了個(gè)新要求 管理員分權(quán)限管理,以前大楷看過THINKPHP 的RBAC的介紹沒仔細(xì)研究,現(xiàn)在用到了就找個(gè)地方把我對(duì)RBAC的理解記一下,免得以后忘記了.

先看下官方給的實(shí)例所用到的數(shù)據(jù)表

RBAC 用到了5個(gè)數(shù)據(jù)表

think_user (用戶表)

think_role (用戶分組表)

think_node (操作節(jié)點(diǎn))

?think_role_user (用戶和用戶分組的對(duì)應(yīng))

think_access (各個(gè)操作和用戶組的對(duì)應(yīng))

這里重點(diǎn)說一下 think_note

think_note 其實(shí)就是記錄下了整個(gè)網(wǎng)站操作對(duì)應(yīng)的 項(xiàng)目名稱 模塊名稱 和 操作名稱.

字段name就是當(dāng)項(xiàng)目,模塊或者操作的名稱了.

字段PID 記錄他們的從屬關(guān)系,比如某一個(gè)模塊是屬于哪個(gè)項(xiàng)目,某個(gè)操作屬于哪個(gè)模塊。

字段level 表示該節(jié)點(diǎn)的層級(jí) 換句話就是說 level=1 為項(xiàng)目 ,level=2為模塊 ,level=3就是操作了,比如說 admin項(xiàng)目,他的PID 就是 0 (項(xiàng)目的PID都是0) level就是1,nane就是admin了,admin項(xiàng)目下面有的user模塊,它的level就應(yīng)該是2,pid就是admin的id, admin下面user模塊的add操作,level就該是3了,pid就應(yīng)該是前面的user對(duì)應(yīng)的ID.

再說下 rbac類的 方法

authenticate($map,$model='')方法 傳入查詢用戶的條件和用戶表的MODEL 返回?cái)?shù)組包含用戶的信息

saveAccessList($authId=null)方法 傳入用戶的ID 此方法不返回值,只是設(shè)置 $_SESSION['_ACCESS_LIST']的值,其中包含了所有該用戶對(duì)應(yīng)的用戶組的有權(quán)限操作的所有節(jié)點(diǎn) $_SESSION['_ACCESS_LIST']['項(xiàng)目名']['模塊名']['操作名'],以后判斷權(quán)限就是判斷當(dāng)前項(xiàng)目,模塊和操作是否在 $_SESSION['_ACCESS_LIST']中能找到。s

checkAccess() 方法 檢測當(dāng)前模塊和操作是否需要驗(yàn)證 返回bool類型

checkLogin()方法 檢測登錄

AccessDecision($appName=APP_NAME) 方法 就是檢測當(dāng)前項(xiàng)目模塊操作 是否在$_SESSION['_ACCESS_LIST']數(shù)組中,也就是說 在 $_SESSION['_ACCESS_LIST'] 數(shù)組中$_SESSION['_ACCESS_LIST']['當(dāng)前操作']['當(dāng)前模塊']['當(dāng)前操作']是否存在。如果存在表示有權(quán)限 否則返回flase。

getAccessList($authId) 方法 通過查詢數(shù)據(jù)庫 返回權(quán)限列表 $_SESSION['_ACCESS_LIST']的值了。

上面的記錄就是 我個(gè)人對(duì)RBAC的理解。在開發(fā)過程中還遇到個(gè)問題,我的項(xiàng)目一有一個(gè) ,但是我又想把 幾個(gè)模塊分開管理。想了半天發(fā)現(xiàn)AccessDecision($appName=APP_NAME) 是可以傳項(xiàng)目名稱的,那么 我們先分幾個(gè)組,也就是LEVEL=1,PID=0的,然后 把模塊分組管理,在使用的時(shí)候就麻煩點(diǎn),每個(gè)分組都建一個(gè)基類,在基類中if (! RBAC::AccessDecision ()) { 手動(dòng)給 AccessDecision添加參數(shù),就是當(dāng)前分組的名稱。然后屬于某個(gè)分組的模塊就引用這基類。這樣就達(dá)到了同一項(xiàng)目下 分組管理模塊的功能了。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 免费高潮在线国 | 成人在线免费小视频 | 久久影院国产精品 | 91青青| 国产精品一区99 | chengrenzaixian | 久久国产一 | 久草在线资源福利站 | 精国产品一区二区三区 | 久久国产精品网 | 欧美日韩大片在线观看 | 久久精品免费国产 | 中国av免费在线观看 | 国内精品伊人久久 | 久久久日韩精品一区二区三区 | 精品国产乱码久久久久久久久 | 久久久久久久91 | 粉嫩粉嫩一区二区三区在线播放 | 精品国产乱码一区二区三区四区 | 色吧综合网 | 9丨九色丨国产 | xxx18hd18hd日本 | 欧美1区2区在线观看 | 国产 日韩 亚洲 欧美 | 91社区电影| 久久一本日日摸夜夜添 | 久久免费视频一区二区三区 | 久久久久久久久久久国产精品 | 一区二区久久久久草草 | 香蕉国产9 | 免费一级毛片网站 | 欧美性生交xxxxx久久久缅北 | 日韩欧美高清一区 | 九色成人在线 | 久久精品九九 | 久久精品一二三区 | 亚洲视屏在线 | 国产日韩免费观看 | 亚洲精品午夜电影 | 成人毛片在线免费看 | h视频在线观看免费 |