拆解權限系統和工作流 工作的時候突然很想要怎么辦

編輯導讀:權限系統可以從字面上理解,賦予不同用戶不同的權限,比如管理員可以增刪賬戶,普通員工只能讀寫數據 。本文作者以釘釘為例,拆解權限系統和工作流,希望對你有幫助 。
拆解權限系統和工作流 工作的時候突然很想要怎么辦


在B端產品從0到1設計的過程中,有一些基礎內容是繞不開的,比如人員系統、賬號系統、權限系統、工作流系統等等 。但是這些系統也相對成熟,可以玩出花的地方也不多,對于這部分我們倒可以占據后發優勢,去學習行業內的產品是怎么做的 。
這里給大家提供一個思路,SaaS的產品經理可以試著從非競品找到設計靈感 。我們這篇文章主要聊一下權限系統和工作流,單從這兩個通用模塊來看,感覺OA系統有比較不錯的心得 。我們以釘釘為例做一個權限系統和工作流部分的拆解,也算對平時工作的一個總結 。
01 權限系統,RBAC(Role-Based Access Control)
權限系統可以從字面上理解,賦予不同用戶不同的權限,比如管理員可以增刪賬戶,普通員工只能讀寫數據 。常規權限系統設計會用到RBAC模型,基于角色的訪問控制模型 。在沒用到這個RBAC模型的情況下,用戶會和權限直接綁定 。
拆解權限系統和工作流 工作的時候突然很想要怎么辦


(用戶-權限)
這個對于簡單系統是非常易懂的,對于人員變動不大的系統也是可以直接上手使用的 。但是當有人員變動或者權限變動的時候,問題就出來了 。以上圖為例,小路離職,索大升職,享有小路的全部權利,這個時候會產生比較大的變動 。而根據RBAC,那么就會有三層結構,用戶-角色-權限 。通過升維解決低維靈活度不夠的問題 。RBAC會是下面這個樣子 。
拆解權限系統和工作流 工作的時候突然很想要怎么辦


(用戶-角色-權限)
小路可以是管理員,也可以是組長,然后小路具有管理員和組長的所有權限 。如果小路離職了的話,索大可以和管理員進行綁定,再和組長綁定 。這時候角色和權限的關系是不需要改變的 。
RBAC還有很多的變體,比如互斥角色、比如角色具有上下級關系,可以參考《RBAC權限系統分析、設計與實現》這個博客 。
我們看看釘釘的實現方式 。
拆解權限系統和工作流 工作的時候突然很想要怎么辦


(釘釘子管理員列表頁面)
拆解權限系統和工作流 工作的時候突然很想要怎么辦


(釘釘子管理員編輯頁面)
拆解權限系統和工作流 工作的時候突然很想要怎么辦


(釘釘子管理員添加人員頁面)
這是釘釘后臺的管理系統,在子管理員頁面里會有添加管理組,添加管理組人員,設定管理組的管理員,設置權限等 。管理組會有一些默認的管理組,也可以由用戶新增 。操作順序可以是:
(釘釘子管理員頁面流程)
釘釘產品已經非常龐大了,作為一個平臺產品,這邊的權限主要是針對不同應用的訪問和使用 。釘釘的管理組就像一個角色,而成員就代表著用戶,最后為角色配置權限 。引入角色對用戶和權限進行解耦的好處是,任何員工的離職入職,都不會影響到角色和權限直接的關系 。而管理要做的,只是把人丟到對應的管理組即可 。
釘釘對于這部分的管理是一步到位的,完成了用戶-角色-權限的配置 。如果想要條理更清晰一些,可以先完成角色和權限的映射配置,再往角色里添加人員就可以了 。
除了用戶- 角色- 權限這種形式,還可能出現更為復雜的問題 。

推薦閱讀