權限管理系統如何分別實現對用戶和角色的授權


目前,大多數權限系統,都是基於RBAC的理念來設計的,關於RBAC,摘抄一下百度百科的解釋:

在RBAC中,權限與角色相關聯,用戶通過成為適當角色的成員而 得到這些角色的權限。這就極大地簡化了權限的管理。在一個組織中,角色是為了完成各種工作而創造,用戶則依據它的責任和資格來被指派相應的角色,用戶可以 很容易地從一個角色被指派到另一個角色。角色可依新的需求和系統的合並而賦予新的權限,而權限也可根據需要而從某角色中回收。角色與角色的關系可以建立起 來以囊括更廣泛的客觀情況。

http://baike.baidu.com/link?url=vS4hKX1RrOgUUO325gBs_VdhDFCc4d07-6fqvu19bDWnE8Ljy_2ema98BA8LlQBBd-mnFzzix-CaTv1_0avfD_

簡而言之:具體操作時,在系統中創建一個角色,給角色添加人,給角色授予操作權限,那么這些人就具有了這些操作權限,在應用中判斷的時候最終應該是判斷某個人是否有某個權限(關於權限的最終判斷,可參考這篇文章http://www.cnblogs.com/hnsongbiao/p/5087359.html),

一、給用戶授權

實際應用中,完全基於RBAC可能並不滿足需求,就比如 Windows 雖然有 管理員組 / 普通用戶組 / 來賓組之分,但它的私人文件夾還是會按用戶的權限進行分配,而不會為了某一用戶增加一個角色,那么在通用的權限管理系統中如何實現呢,先看下界面

給指定的用戶授予權限,右邊的子系統,表示是給該用戶授予這個系統的操作權限,點擊上面的用戶按鈕,彈出授權頁面,選中后保存,用戶就具有選中的操作權限了,見下圖:

二、給角色授權

角色權限配置是權限系統必備的,主要功能就是創建角色,向角色中添加人(或者給人設置角色),給角色配置操作權限,

給人設置角色,在第一個頁面中也可以實現,如下圖

角色權限管理中也可以為角色添加人,

上面是為角色添加人或為人設置角色的方法。

現在,再看看如何給角色設置操作權限,角色的操作權限也就是角色里的人的操作權限。

 設置及保存用戶的操作權限,操作權限可能是一個地址,也有可能是一個按鈕,下圖:

在界面上選中操作權限保存,這樣角色就具有了對應的操作權限了。

在具體應用中,判斷用戶操作權限時,應該先獲取給用戶單獨設置的權限,以及用戶的角色具有的權限,兩者取並集,大部分權限系統只做到按角色的權限判斷。

通過這個方式,我們實現了按人設置權限,及按角色設置權限,滿足系統中的一些特殊需求。

大多數情況下,用戶(User)、角色(Role)、操作權限(Permission),三者之間的關系,可以把角色看做一個個容器,這個容器里有很多用戶,有很多操作權限,用戶和操作權限之間是多對多的關系,用戶通過角色與操作權限關聯起來,某些情況,也要求用戶不通過角色,直接與操作權限關聯,通用權限管理系統就可以解決這類需求。

用戶始終是授權的主體,片面上說,有了角色,實際上就為很多人同時授權提供了方便,但是不應該因為有了角色,給用戶授權就必須要創建一個角色,那樣就不太靈活了。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM