官术网_书友最值得收藏!

二、應用權限模型設計

首先,我們要了解一下,什么是權限。權限就是用戶對某些資源的控制能力。所以,模型上我們就有了一個抽像的資源概念。

資源按類型具化,可能是用戶在門戶上可見的菜單,或者是頁面上可見可點擊的某些按鈕,又或者是用戶在應用后端可以調用的某個接口等。

用戶通過角色,與這些資源建立了關聯,我們才能在系統中通過用戶找到這些資源,然后對它進行控制。

因此,用戶,角色,資源的關系,就是一個用戶可分配多個角色,一個角色,可以關聯多個資源。如下圖所示:

為了方便角色進行資源授權的管理,我們又提出了幾個服務于它們的概念:角色模板,權限模板,資源組。

資源組,顧名思義,就是資源的分組。它是一個樹狀模型,目前主要設計使用了三層。頂層的代表著某一塊的資源總集,比如某個子系統的資源總集。

權限模板,它通過關聯多個頂層的資源組,可以代表著某個范圍內的可授權資源總集。

角色模板關聯著權限模板,從它的這個資源集合中挑出了一部分。

角色則是在創建的時候,復制角色模板的這些資源授權。它的資源授權可以修改,但可授權資源仍為權限模板代表的總集。

資源的授權如上圖所示。頂層的資源組代表著某一塊的資源總集,第二層則代表不同的資源類型,如菜單,功能,環境等。第三層代表著模塊,比如機構管理模塊的菜單。第三層的資源組之下,才關聯具體的資源。對角色或者角色模板進行資源授權配置時,只需要找到對應的資源類型與模塊,再找到相應的資源,點擊是否勾選即可完成授權,非常地直觀。

用戶如何與資源關聯?如下圖,這里我們假設了一個示例。

某應用集成了coframe,其下又分了三個子系統。為了方便資源的管理,我們為每個子系統設置了一個頂層的資源組,然后為它配置了下層資源組與資源。然后,我們設置了兩個權限模板,其中一個負責coframe與子系統一的資源,另一個則負責三個子系統的資源。基于兩個權限模板,我們分別創建了角色一與角色二。三個用戶中,用戶一分配了角色一,用戶二分配了角色一與二,用戶三分配了角色二。用戶一可分配coframe與子系統一中的資源,用戶二可分配所有資源,用戶三則只能分配三個子系統的資源。這樣,資源的組合與隔離,會變得相當方便與直觀。

主站蜘蛛池模板: 涟源市| 崇文区| 通海县| 二连浩特市| 泰州市| 博乐市| 寿宁县| 榆树市| 威远县| 泾源县| 噶尔县| 五常市| 湘潭县| 密云县| 喀喇| 苗栗市| 砚山县| 友谊县| 铜川市| 平度市| 周口市| 常熟市| 张家界市| 汉寿县| 灌云县| 沙河市| 达州市| 贵州省| 神农架林区| 上蔡县| 皮山县| 成武县| 琼结县| 河津市| 年辖:市辖区| 陵水| 渭南市| 浮山县| 丰宁| 雷山县| 应用必备|