設(shè)計一款后臺產(chǎn)品時,用戶角色權(quán)限控制是最常遇到的問題,本文以最簡單最基本菜單權(quán)限設(shè)計實現(xiàn),采用具體案例來說明權(quán)限設(shè)計應(yīng)該怎么實現(xiàn)。
原始需求:A企業(yè)有員工四名,分別是總裁張三、經(jīng)理李四、員工王五和肖六,為A公司設(shè)計一款后臺系統(tǒng),要求每個員工看到的菜單選項不一致。
1.權(quán)限的作用意義
顧名思義,“權(quán)”代表“權(quán)力”,劃分了系統(tǒng)的職權(quán),不同的用戶擁有不同的權(quán)力劃分;“限”代表“限制”,在權(quán)力劃分的基礎(chǔ)上對職能范圍進(jìn)行了限制,本文所述的權(quán)限相對簡單,賦予不同角色看到不同菜單的權(quán)限。
權(quán)限控制能較好地解決系統(tǒng)安全問題,避免公司機(jī)密資料外泄,同時,不同部門使用系統(tǒng)時互不干擾,因此被企業(yè)廣泛應(yīng)用。
2.梳理用戶、角色的概念
(1)用戶
用戶是指系統(tǒng)的登錄用戶,可以理解為一系列的人員,例如登錄用戶為張三、李四、王五和肖六這幾個人。
(2)角色
角色指用戶在系統(tǒng)中擔(dān)任的角色,是系統(tǒng)賦予用戶的頭銜,例如A公司后臺系統(tǒng)角色可以定義為:總裁、經(jīng)理、員工。
3.選擇合適的權(quán)限模型
(1)傳統(tǒng)的權(quán)限模型
在早期,傳統(tǒng)的權(quán)限模型就是為用戶分配菜單權(quán)限,例如張三看到A、B、C菜單,李四看到B、C菜單,王五和肖六看到A、B、C菜單,這種傳統(tǒng)的權(quán)限模型簡單粗暴,直接為用戶分配菜單即可,但是隨著公司員工激增,在動則數(shù)百人的公司里,沒一個員工都要分配一次,顯然效率太低。
并且,在進(jìn)行交互設(shè)計時,定義數(shù)百名用戶擁有的菜單權(quán)限,那需要寫數(shù)百行的表格。
(2)RBAC權(quán)限模型
RBAC,即基于角色的訪問控制(Role-Based Access Control),是優(yōu)秀的權(quán)限控制模型,主要通過角色和權(quán)限建立管理,再賦予用戶不同的角色,來實現(xiàn)權(quán)限控制的目標(biāo)。
利用該模型來配置權(quán)限,直接優(yōu)點是角色的數(shù)量比用戶的數(shù)量更少,先把權(quán)限賦予角色,即可完成權(quán)限的分配;再為用戶分配相應(yīng)的角色,即可直接獲得角色擁有的權(quán)限。
交互設(shè)計的福音,只需定義有限的角色擁有哪些菜單權(quán)限即可。
(3)模型其他注意事項
在選擇第二種RBAC權(quán)限模型時,需要注意,用戶——角色——權(quán)限之間并非是一對一的對應(yīng)關(guān)系,例如,一個用戶可以擁有多種角色,一個角色也可以擁有多個權(quán)限,所以應(yīng)該是多對多的關(guān)系,需要和開發(fā)說明清楚。
4.菜單實現(xiàn)效果
如圖所示,通過權(quán)限控制后,不同用戶登錄進(jìn)去看到的菜單顯示都不一致,基于角色來進(jìn)行菜單展示。
(1)總裁角色,菜單A、B、C
(2)經(jīng)理角色,菜單B、C
(2)員工角色,菜單C
@夜雨原創(chuàng)作品,未經(jīng)許可,禁止轉(zhuǎn)載。