基於RBAC的Easyui樹形許可權選單的實現原理

2021-06-26 00:43:04 字數 1099 閱讀 6572

1、使用者表

2、角色表

3、使用者角色關聯表

4、許可權表

5、角色許可權關聯表

通過五表聯查即可獲得乙個使用者的所有角色以及角色下的所有許可權。

具體到ui層面,這些許可權總歸要以某種形式展現出來。一般是下拉列表或者樹形選單。這裡我們採用樹形選單來展示,所謂許可權,在easyui中可以規劃為乙個子頁面,能看到這個子頁面即可在上面進行操作。有興趣的讀者可以參看我的另一篇博文easyui實現可擴充套件框架的幾種思路 。

使用linq to sql來查詢許可權資料。首先基於easyui tree 的格式來構造view model。  

//url屬性類

public class url

}//節點類

public class node

public url attributes

public string iconcls

}//父節點類

public class father

public listchildren

}

tree控制項的attributes屬性就是提供給使用者的乙個資料容器,你可以在其中放置各種自定義的資料。

將聯查得到的許可權資料填充到檢視模型集合中並序列化成tree控制項需要的標準格式:  

public string menutree(string username)

;var g = from c in result group c by c.role_name;

foreach (var i in g)

});}

}return jsonconvert.serializeobject(menu);

}

組裝tree資料稍顯繁瑣。最後展現在頁面中的選單如圖:

這裡只為使用者配置了乙個審核角色,審核角色下有四個許可權,這一切都是從資料庫動態生成的。

角色的順序、角色中許可權的順序以及圖示和url路徑都是可以配置的。至此,基於rbac的許可權選單樹已經實現了全配置。

EasyUI中樹形外掛程式的使用

a.頁面上的 構成 1 html部分12 34 這裡涉及到樣式問題的,按實際需要自己設定 1 2 js部分,這裡我設定樹在頁面載入時直接構成,預設樹關閉 12 document ready function 初始化樹 function init 雙擊事件,測試選中的節點傳值到後台 ondblclic...

easy UI樹形核取方塊

首先,展示一下結果 這個是使用easyui的combotree控制項來實現的,具體的 如下 1,宣告乙個核取方塊 select id roleper name permissionnamelist class easyui combotree style width 200px data optio...

Easyui 基於kindeditor的擴充套件

原始碼 author 夏悸 easyui kindeditor的簡單擴充套件.有了這個之後,你就可以像使用easyui元件的方式使用kindeditor了 前提是你需要匯入kindeditor的核心js和相關樣式.本外掛程式也需要在easyui.min和kindeditor之後匯入.呵呵.沒做深入擴...