yii rbac

1、簡介程序員

 


 

什麼是rbac ?yii

rbac是就是基於角色的訪問控制。模塊化

yii提供一套基礎的底層接口,咱們知道,rbac經歷好幾個階段,從rbac0到rbac3,從基礎的用戶、角色、權限,到動態的rbac處理模式,再到如今的權限繼承,解決複雜的多頁面元素權限分配。spa

總而言之,rbac有三個特性。繼承

1. 基礎:接口

角色、權限、用戶 三大致系。路由

2. 權限繼承:io

角色派生原則,一個角色能夠派生多個低權限角色。例如:總經理 =》經理、副經理、營運等基礎

3. 權限分配:route

權限分配必須從基礎權限到高級權限,若是想擁有高級權限必須現擁有基礎權限。例如:一個系統,我想擁有全部的權限。首先,咱們必須現擁有查看全部菜單和子菜單的權限,而後,在擁有頁面元素操做的權限,即增、刪、改、查及其餘。

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表,用於客戶端角色分配,客戶端只須要去建立角色,並分配好角色權限,即可綁定用戶。這裏存在一個問題,就是剛開始說的模塊化系統中,功能按鈕過多問題。因此,咱們一個在一個高級角色的基礎上,去派生用戶所須要的角色。

例如:

總經理   

拿到總經理的權限,在其基礎上去,分配經理、副經理的角色。分配用戶。

相關文章
相關標籤/搜索