目前,大多數權限系統,都是基於RBAC的理念來設計的,關於RBAC,摘抄一下百度百科的解釋:html
在RBAC中,權限與角色相關聯,用戶經過成爲適當角色的成員而 獲得這些角色的權限。這就極大地簡化了權限的管理。在一個組織中,角色是爲了完成各類工做而創造,用戶則依據它的責任和資格來被指派相應的角色,用戶能夠 很容易地從一個角色被指派到另外一個角色。角色可依新的需求和系統的合併而賦予新的權限,而權限也可根據須要而從某角色中回收。角色與角色的關係能夠創建起 來以囊括更普遍的客觀狀況。url
http://baike.baidu.com/link?url=vS4hKX1RrOgUUO325gBs_VdhDFCc4d07-6fqvu19bDWnE8Ljy_2ema98BA8LlQBBd-mnFzzix-CaTv1_0avfD_設計
簡而言之:具體操做時,在系統中建立一個角色,給角色添加人,給角色授予操做權限,那麼這些人就具備了這些操做權限,在應用中判斷的時候最終應該是判斷某我的是否有某個權限(關於權限的最終判斷,可參考這篇文章http://www.cnblogs.com/hnsongbiao/p/5087359.html),htm
實際應用中,徹底基於RBAC可能並不知足需求,就好比 Windows 雖然有 管理員組 / 普通用戶組 / 來賓組之分,但它的私人文件夾仍是會按用戶的權限進行分配,而不會爲了某一用戶增長一個角色,那麼在通用的權限管理系統中如何實現呢,先看下界面blog
給指定的用戶授予權限,右邊的子系統,表示是給該用戶授予這個系統的操做權限,點擊上面的用戶按鈕,彈出受權頁面,選中後保存,用戶就具備選中的操做權限了,見下圖:io
角色權限配置是權限系統必備的,主要功能就是建立角色,向角色中添加人(或者給人設置角色),給角色配置操做權限,容器
給人設置角色,在第一個頁面中也能夠實現,以下圖百度
角色權限管理中也能夠爲角色添加人,配置
上面是爲角色添加人或爲人設置角色的方法。權限
如今,再看看如何給角色設置操做權限,角色的操做權限也就是角色裏的人的操做權限。
設置及保存用戶的操做權限,操做權限多是一個地址,也有多是一個按鈕,下圖:
在界面上選中操做權限保存,這樣角色就具備了對應的操做權限了。
在具體應用中,判斷用戶操做權限時,應該先獲取給用戶單獨設置的權限,以及用戶的角色具備的權限,二者取並集,大部分權限系統只作到按角色的權限判斷。
經過這個方式,咱們實現了按人設置權限,及按角色設置權限,知足系統中的一些特殊需求。
大多數狀況下,用戶(User)、角色(Role)、操做權限(Permission),三者之間的關係,能夠把角色看作一個個容器,這個容器裏有不少用戶,有不少操做權限,用戶和操做權限之間是多對多的關係,用戶經過角色與操做權限關聯起來,某些狀況,也要求用戶不經過角色,直接與操做權限關聯,通用權限管理系統就能夠解決這類需求。
用戶始終是受權的主體,片面上說,有了角色,實際上就爲不少人同時受權提供了方便,可是不該該由於有了角色,給用戶受權就必需要建立一個角色,那樣就不太靈活了。