10張圖,系統掃盲權限管理功能設計思路
大家好,見字如面,我是穆寧。
今天,應產品穆屋群友要求,給大家系統講解下權限管理功能的設計思路。也是為沒有做過權限管理功能模塊或即將要做的同學,做一下系統掃盲。
還是那句話,做產品有個基本設定:
定位確定需求,需求確定功能。
所以權限管理功能從某種意義上必然是滿足了某類需求的,我們就從需求說起,聊一聊管理后臺。
權限管理模塊的需求目標包括如下三點:
(1)對應用系統的所有資源進行權限控制,比如應用系統的功能菜單、各個界面的按鈕控件等進行權限的操控;
(2)完善用戶、角色、組織、資源、操作的管理功能,其中的組織管理模塊只提供組織視圖,不參與權限的控制管理。
(3)開發人員開發新的系統功能,通過資源和角色模塊進行操作管理。使用系統管理員身份登陸,直接將訪問路徑作對角色資源授權給操作,實現資源訪問控制管理。
所以從需求范圍層面來看,權限可以分為三種:頁面權限,操作權限,數據權限。
頁面權限控制你可以看到哪個頁面,看不到哪個頁面,又稱為菜單權限控制。很多系統都只做到了控制頁面這一層級,它實現起來比較簡單,并且與操作權限有一定的關聯性,所以在此我們將它與操作權限歸并。(頁面權限可以理解為操作權限的最底層權限:瀏覽)
操作權限則控制你可以在頁面上操作哪些按妞。當我們進入一個頁面,我們的目的無非是在這個頁面上進行增刪改查,那在頁面上對應的操作可能是:查詢,刪除,編輯,新增四個按鈕)可能你在某個頁面上,只能查詢數據,而不能修改數據。
數據權限則是控制你可以查閱、管理、導出哪些數據,比如A部門的人只能看到或者修改A創建的數據,他看不到或者不能修改B部門的數據。
好,說完權限管理的范圍,我們接下來考慮,怎么樣對操作權限與數據權限進行管理。這里我們引入一個成熟概念,叫做RBAC模型。
RABC(Role-Based Access Control),基于角色得訪問控制。通俗說,就是,權限不會直接分配到用戶,而是分配到用戶所擁有得角色。
這樣的好處是什么?好處就是如果用戶全體特別大,分配權限就能累死人,基于RBAC更適合企業應用得權限控制。
RBAC得四大模型RBAC根據這套模型功能的復雜程度不同,由簡單到復雜又可以分為RBAC-0、RBAC-1、RBAC-2、RBAC-3四個層級。
RBAC-0:
RBAC-0是最基礎的,就是在用戶與角色、角色與權限間建立關系,每種關系均為多對多。
RBAC-1:
RBAC-1是在RBAC-0的基礎上,增加了繼承關系。就是一個角色只能有另一角色的部分權限,這個角色的權限大小受另一角色權限影響。簡單說,角色2由角色1派生,那么角色2所有得權限必然小于角色1,角色1擁有權限1,2,而角色2只有擁有權限1。
RBAC-2:
RBAC-2模型,其實就是角色沖突,一個簡單例子,你不能即是運動員也是裁判員,這樣關系就亂了。這里就是用戶3,不能同時擁有角色2,3。
RBAC-3:
RBAC-3是RBAC-1與RBAC-2的結合,可以理解為1+2。就是既有繼承關系,又有限制條件,基礎都一樣。
好,說完RBAC模型,我們進入到下一環節。如何利用RBAC模型,對操作權限、數據權限進行管理呢?
(1)數據權限管理
數據權限是指用戶是否能夠看到某些數據。主要應用在數據有保密要求,或數據量大,需按用戶或角色來進行區分時。例如:財務主管在后臺可以看到公司所有人的工資流水,但普通員工只能看到自己的工資流水。
在這里,有的同學或許認為,既然我們的權限是跟角色關聯,為什么“查看工資流水”這個權限精確到每個用戶了呢?其實這就是RBAC-2的一種,權限與角色關聯后增加了限制條件,不過這種限制條件無法在頁面上靈活配置。數據權限的顆粒度由粗到細可以分為菜單級、欄目級、字段級,一般配置頁面都可以靈活操作。
(2)操作權限管理
操作權限是指用戶是否能夠操作對應按鈕。需要先有數據權限,才有操作權限,所以需要增加系統自動校驗:選擇了操作權限,就默認勾選了查看(數據)權限;取消了數據權限,就自動取消了操作權限;以上就是我們做單系統的權限設計分享的內容。在多系統的權限設計中,雖然理論基礎一樣,但因為涉及到多個系統,所以產生了很多其他問題,需要另外解決。
權限管理
每個用戶組的管理員都有添加用戶,授予用戶權限的能力。
權限的意思就是對某個資源的某個操作,現在規定:所謂資源,即系統的模塊;所謂操作,包括:增加、刪除、修改、查詢等操作。
權限管理系統的總體功能分為:授權與認證。授權,指將權限授予角色或用戶。如果用戶A擁有角色B、角色C,那么,缺省的情況下,用戶A將擁有被分配給角色A和角色C的所有權限。如果用戶擁有多個角色,那么用戶的權限是這些角色權限的合集。
總體上,可分為模塊管理、角色管理,用戶組管理和用戶管理模塊:
模塊管理:
因為模塊是一個樹狀結構(本系統只支持兩級模塊的結構),我們可以點擊其中一個模塊以便打開其子模塊來維護;
角色管理:
可以添加角色信息、刪除角色信息以及給角色授權。在這個界面上,按照兩級模塊的形式列出系統所有模塊,以及在這些模塊上面的CRUD(添加、讀取、更新、刪除)權限;所謂“啟用”,意思是本設置有效,否則設置無效。
用戶組管理:
與角色管理流程基本相似,只不過,用戶組所具有的權限是其用戶組下的用戶基本的權限,而角色所具有的權限是其用戶組下的用戶附加的權限。
用戶管理:
因為用戶實際上就是系統人員的帳號,而且每個人只能擁有一個帳號,所以用戶管理主界面,實際上就是系統所有人員的列表!
【分配帳號】 - 給人員分配帳號,如果已經有帳號,則提示無法繼續分配帳號,如果想修改帳號的話,需要先刪除帳號,再重新分配
【刪除帳號】- 提示是否刪除,如果確定,再發出刪除請求,在刪除成功之后,刷新界面。
【分配角色】- 給用戶分配角色,一個用戶可以擁有多個角色;
好了,今天我們的系統掃盲就到這里,如果覺得對你有幫助,歡迎。相關權限管理系統案例及思維導圖,可在公眾號中按照如下操作領取。
我是穆寧,你的產品知識系統掃盲小幫手,快來關注我,我們明天見!
我的書:《產品思維模型-方法與實踐》
我是穆寧,讓我做下自我介紹
工作多年后辭職,考了個北郵碩士
混過BAT做過PM,創過業,現央企搬磚
虎嗅,36kr,人人產品經理專欄作家
互聯網撰稿人 | 音樂人 | 網球手
別被任何人定義,你我都是獨一無二
本文來自微信公眾號 “產品思維模型”(ID:muningtalk),作者:穆寧,36氪經授權發布。
