1樓:匿名使用者
哎,就35分,要回答你這個問題的話。。。有點虧了!呵呵。。
下面,我就大致跟你講一下思路吧!
首先,先說一下怎樣實現rbac的許可權過濾。其實說白了就是在我們每次訪問action操作的時候,都問一下,我可不可以操作,如果可以,放行;否則,攔截並給出提示!
那麼,我們怎麼才能實現在每次訪問action的時候都會先“問”一下的操作呢?並且,這個“問”一定要在所有程式開始執行之前,否則就沒有意義了。。。
這樣的話,如果實現上述操作,就涉及到了兩點:
1、每次問的時候是問誰,怎麼問?
2、“問”操作怎麼才能在所有程式開始執行前執行?
答:1、在執行使用者登入的時候,登入成功後必須有一個操作是查詢該使用者能訪問的節點(action),然後把查詢到的資訊封裝到session裡,然後每次在執行action前,都要in_array(問)一下:如果當前訪問的節點action在我的session裡,放行;否則,攔截!
2、tp自帶了一個_initialize公共方法,該方法實現了每次在執行action的時候都要先執行這個方法!我的建議是:先建一個baseaction類,讓這個類繼承tp的action類,然後後續自己寫的每一個類都要繼承baseaction這個類!
這樣,在baseaction這個類裡邊只有宣告一個_initialize公共方法,就能做到每次在訪問節點之前“問”的操作了!
嗯,思路大概就是個思路,沒法再詳細了,再詳細就得把那5張表搬出來了,要是真搬出來,那就得說到天黑了,呵呵。。。。那5張基本的表(也可以用4張)的關係必須得搞清楚了,否則上邊的我等於白說!
涉及到的5張表(或者4張):
管理員user表
管理員角色對應userrole表(可無)
角色role表
角色節點對應rolenode表
節點node表
如果你連這5張表的關係還沒搞明白的話,那我上邊的答案等於白寫,那麼推薦你可以先看一下這個帖子!
但願能幫到你!!!
2樓:匿名使用者
你直接把tp的rbac例子複製過來用不就得了。。。。
thinkphp 怎麼例項化rbac
3樓:
複製**
會跳轉到
http://localhost/rbac/public/login複製**
如圖所示:
系統預設新增了3個角色(不包括超級管理員賬號),用不同的賬號登入後會有不同的操作許可權。首先,我們建議用admin(超級管理員賬號,不受許可權控制影響)賬號登入進行相關的修改設定。登入後,切換到應用中心
thinkphp的rbac容易理解麼??
4樓:匿名使用者
如果出現登入頁面,說明成功了,輸入正確的使用者名稱和密碼登入成功之後,訪問相關的模組及方法
如果沒有許可權,它會報沒此許可權
9、以後要做的把相關的模組在後臺進行控制,以及分角色管理
thinkphp3.2rbac許可權如何弄
5樓:carol木子臻
容易理解\r\n與rbac訪問控制相關的概念有:\r\n 1. 使用者(user):
一個具有唯一識別符號的使用者,與許可權相分離,只能通過所屬的role去關聯許可權,一個使用者可以擁有多項角色;\r\n 2. 角色(role):一定數量的許可權的集合,角色可以繼承,一個角色對應多項許可權;\r\n 3.
許可權(resource):也可以看作是資源,它對應了應用系統中的一個功能;
thinkphp的auth許可權和rbac有什麼區別
6樓:匿名使用者
相同點:
1.兩種都是基於角色許可權控制
2.都是同一個使用者可屬於多個角色或使用者組
不同點:
rbac:
1.rbac是基於節點控制,根據3級節點,module,controller,action,節點類似與樹形結構,3級節點間相互有關聯
2.表關係:使用者表->使用者角色關聯表->角色表->角色節點關聯表->節點表
3.根據3級節點控制,粒度到操作action,每個節點為單一的模組,控制器或操作
auth:
1.auth是基於規則控制,定製規則和條件表示式 ,每一條規則都是獨立的
2.表關係:使用者表->使用者和使用者組關聯表->使用者組表->規則表
3.根據規則控制,可自由定製不同的規則,非常自由,同一個規則內可以定製多個不同節點(中間的關係:or and)
4.可定製規則表示式,比如定製積分表示式
想法和問題:
auth:
1.auth驗證多條規則時條件表示式不起效果
2.auth官方例子只說一個根據積分的規則,假如我規則"admin/goods/goodslist,admin/goods/goodsdel"我
能不能定義這裡面的某些id所屬角色操作許可權的規則表示式,而這些所屬角色id是goods表裡的某個欄位,可能所屬的角色是多個不同的角色?
3.auth不支援"admin/*"泛解析,因為他每一條規則都是獨立的
4.對選單,頁面,按鈕類的顯示使用auth會必rbac更好更方便
rbac:
1.新手配置rbac的時候經常出現 rbac $_session['_access_list'] 獲取不到的問題,因為rbac是使用thinkphp的底層db引擎dsn連線資料庫,需要配置資料庫連結和5個表的關係,欄位名和表名不能出現問題
2.允許完成"admin/*"型別的泛解析,比如這裡直接定製一個admin模組的節點,不要下級節點就可以了
通用:1.不管是rbac的角色表或者auth裡面的使用者組表也好,都可以擴充套件,比如對角色或使用者組進行多層分級
2.rbac的節點和auth的規則都可以進行分級,比如前端功能許可權,後端功能許可權,後端某個功能模組許可權等等
3.上面兩個東西都不能應用到許可權管控之中去,比如rbac不能分享上級角色許可權,auth使用者組也不能,但是能更好的管理和更加流程化的操作.
thinkphp的rbac怎麼使用
7樓:一騎當後
新建一個baseaction.class.phpfunction _initialize()// 沒有許可權 丟擲錯誤
if (c('rbac_error_page')) else// 提示錯誤資訊
$this->error(l('_valid_access_'));}}
}讓所有的action都繼承這個。
class indexaction extends baseaction{
**,僅供參考。
如何寫簡歷,如何寫簡歷
有針對性,突出自己的優勢並與企業的要求相匹配,其他的條件不能改變去伯小樂答題提高自己的能力也可以。你是否投了簡歷卻沒有回應?如何寫簡歷 100 既然你已經選擇了這個行業,又有相關證書,建議你先把這個證掃瞄放進你的簡歷中,形象說你自己適合這個專業。其次,在簡歷中展示出你應聘這個崗位的特點在哪,例如,游...
如何寫愛情藏頭詩,如何寫藏頭詩?
渾初翠 愛這一回說不清,情之所至誰人明?藏在心裡與誰聽?頭回講出難安靜,詩詞歌賦也未靈。 姑蘇夜鍾 詩句共四句。古體的詩歌。後兩句打頭字分別為心和 肝。前兩句的打頭字分別是你寶貝的名字或暱稱的兩個字!比如郭靖寫這首詩 舉例 四詩句的打頭字,就是 1,蓉,2,兒,3,心,4肝。每句後面的內容,你就自己...
如何寫文化考察,如何寫文化考察
內容來自使用者 楊佩熔 xx生物科技發展 上海 赴新疆xx集團訪問活動方案 一 初擬日程 9月18日 在楊凌集中召開經營工作會議 9月19日出發前往新疆伊犁 9月20日 21日在冠通集團進行訪問對接 9月22日黃董事長 張興老師等領導返程 技術團隊由陳燎老師牽頭,開展具體工作,落實雙方合作事項。二 ...