今天看了下Thinkphp示例中的rbac的示例,大概說(shuō)下實(shí)現(xiàn)的思路
1、檢測(cè)是否開(kāi)啟了權(quán)限驗(yàn)證
2、檢測(cè)當(dāng)前模塊是否需要驗(yàn)證
3、檢測(cè)當(dāng)前操作是否需要驗(yàn)證
4、獲取用戶(hù)所屬角色的擁有的權(quán)限
5、根據(jù)所獲取的權(quán)限來(lái)驗(yàn)證當(dāng)前的操作是否允許。
有兩個(gè)疑問(wèn):
1、當(dāng)前操作是否需要驗(yàn)證,tp給出了使用配置文件中的兩個(gè)參數(shù),一個(gè)存儲(chǔ)需要驗(yàn)證的操作,一個(gè)是不需要驗(yàn)證的操作,但是使用當(dāng)前的操作來(lái)與他們進(jìn)行匹配,若果不需要驗(yàn)證的操作里面有add這個(gè)方法的話(huà),所有模塊的add方法都會(huì)跳過(guò)驗(yàn)證.
2、公共模塊的操作,在獲取角色擁有權(quán)限的時(shí)候,會(huì)把公共模塊的操作疊加到當(dāng)前模塊的權(quán)限列表中,也就是在賦予一個(gè)角色公共模塊的添加操作的話(huà),那么當(dāng)前模塊的添加操作不管有沒(méi)有都會(huì)添加進(jìn)去.
新聞熱點(diǎn)
疑難解答
圖片精選