yii rbac
一、簡介
?
?
什么是rbac ?
rbac是就是基于角色的訪問控制。
yii提供一套基礎的底層接口,我們知道,rbac經歷好幾個階段,從rbac0到rbac3,從基礎的用戶、角色、權限,到動態的rbac處理模式,再到現在的權限繼承,解決復雜的多頁面元素權限分配。
總而言之,rbac有三個特性。
1. 基礎:
角色、權限、用戶 三大體系。
2. 權限繼承:
角色派生原則,一個角色可以派生多個低權限角色。例如:總經理 =》經理、副經理、營運等
3. 權限分配:
權限分配必須從基礎權限到高級權限,如果想擁有高級權限必須現擁有基礎權限。例如:一個系統,我想擁有所有的權限。首先,我們必須現擁有查看所有菜單和子菜單的權限,然后,在擁有頁面元素操作的權限,即增、刪、改、查及其他。
yii提供的接口,實現了rbac的基礎功能,路由的控制、頁面元素和菜單的顯示、隱藏等。作為合格的程序員,思想的層次有時候決定你的技術層次。因為yii提供了基礎,那么我們可以在它的接口上結合具體項目需求去拓展rbac的功能。
具體如下:
我需要一個菜單表,來存儲的模塊,以垂直分表 的形式,實現無限極目錄。
表字段: ?name(名稱:primary key) ? route(路由) ?pid(父ID) ...
此表以三級聯動,動態的添加權限、角色,記錄模塊的層次等級,菜單=》子菜單=》功能、頁面元素。
?
例如:
權限管理 ? ? ?偽路由:permission/index ? ? ?父ID ? 0 ? ? ? ??
添加權限: 權限:permission/index ? ? ?類型: 1
添加角色: 權限管理 ? ? ? ? ? 類型 : 2
綁定權限: 權限管理 ? ? ?permission/index ?
?
角色分配: ?角色: 總經理 ? ? ?權限: 權限管理
用戶權限: admin ? ? ? ? ?總經理
也許大家可能看不懂,但是如果熟悉yii底層rbac基礎接口,就容易理解啦,因為yii提供了現有的一套完善的rbac權限邏輯,所以,我們只需要在其基礎上去拓展。 ?這里需要在添加一個數據表格role表,用于客戶端角色分配,客戶端只需要去創建角色,并分配好角色權限,便可綁定用戶。這里存在一個問題,就是剛開始說的模塊化系統中,功能按鈕過多問題。所以,我們一個在一個高級角色的基礎上,去派生用戶所需要的角色。
例如:
總經理 ??
拿到總經理的權限,在其基礎上去,分配經理、副經理的角色。分配用戶。
?
?
? ? ?
轉載于:https://www.cnblogs.com/hellow-world/p/9219174.html
總結
- 上一篇: pycharm配色
- 下一篇: Notepad++ 删除空白行的方法(转