今天和大家一起探討權限管理方面的設計心得。權限管理,是B端后臺系統一個重要的組成部分,屬于底層的支撐功能,系統內所有的功能,甚至字段的增減都涉及到權限的分配和管理。因此怎樣配置后臺的權限系統,以適應多變業務需求,是今天筆者和大家分享的內容。
文章目錄
- 控制權限的主體
- 權限管理模型
- 通過角色控制賬號權限
- 通過簡檔控制賬號權限
- 權限管理的分類
- 菜單權限
- 操作權限
- 數據權限
一、控制權限的主體
后臺系統是通過賬號登錄的,賬號用戶控制每個員工的權限。
二、權限管理模型
-
通過角色控制賬號權限
除非后臺賬號數量很少(20個以內),,否則一般不會直接對賬號配置權限,因為用戶基數比較大的情況下,很多人的權限都是一樣的,如果管理員給100人甚至更多授權,工作量巨大,因此引入了“角色”的概念。一個角色可以與多個用戶關聯,管理員只需要把該角色賦予用戶,那么用戶就有了該角色下的所有權限。角色起到了橋梁的作用,這樣設計提升了效率。這種權限管理的設計模型如下,一個賬號可以對應多個角色,每個角色對應不同的權限。
角色-權限管理模型
-
通過簡檔控制賬號權限
一些大型的公司,用戶數量較大,不同部門下的角色,權限是一樣的,比如英國部下的銷售人員和美國部下的銷售人員權限一致,如果每個新增一個功能,所有角色都需要修改權限,那么對于管理員來說,維護成本巨大,因此可以引入簡檔的概念。筆者所在的公司,后臺賬號大約有500個,角色有80多個,簡檔僅有10個,權限變更時,只需要修改這10個簡檔就可以了,效率非常高。這種權限管理的設計模型如下,一個賬號對應一個簡檔,每個簡檔對應不同的權限。這種模型還有一個好處就是,可以利用上下級的角色關系,控制數據的權限,這方面在下面詳細說。
簡檔-權限管理模型 通過賬號、角色、簡檔都可以實現系統權限的控制,沒有說哪種方式是最好的,如果公司少于100人,角色不多,完全沒有必要采用簡檔控制權限的方式,關鍵是根據自己公司的業務特點選擇最合適的方案。
三、權限管理的分類
上面說到的是控制權限的媒介,下面重點講解權限管理都包含哪些內容,應該怎樣進行設計。
-
菜單權限
即用戶在系統中可以看到的頁面,由菜單來控制,菜單包括一級菜單、二級菜單,只要用戶有一級和二級菜單的權限,那么用戶就可以訪問頁面。如圖所示,即對應該角色/簡檔的用戶對于分銷管理、運營管理等在菜單欄沒有入口。
菜單權限配置
- 操作權限
-
操作權限分為對對象的操作權限和對字段的操作權限。對象的操作權限包括查看,創建,編輯、刪除。用戶點擊刪除按鈕時,后臺會校驗用戶角色下的所有權限是否包含該刪除權限,如果是,就可以進行下一步操作,反之提示無權限。如圖所示,即對應這個角色/簡檔的賬號對接送機訂單僅有查看的權限,沒有創建、編輯和刪除的權限。
對象操作權限配置 -
字段權限是指對記錄對應屬性的操作權限,字段的操作權限一般有2種,可查看權限和可編輯權限。配置了可查看全看,即用戶可以查看該字段,沒有配置該權限的賬號,不能在頁面上看到該字段。配置了可編權限的賬號,可以編輯該字段的屬性。如圖所示,對應該角色/簡檔的用戶只可以查看該對象的客戶字段,不能對客戶進行修改。
字段操作權限配置
-
- 數據權限
- 通過角色/簡檔控制數據的查看和編輯權限: 數據權限是指每個賬號可查看的數據是不同的,可以通過角色/簡檔配置對不同對象的數據全新,這種設計方式上面的操作權限已經詳細介紹過。
- 通過對象控制公用權限和專用權限: 在新建對象時,可以設置對象的公用權限和專用權限,公用權限是指該對象下的記錄,所有賬號都可以訪問。專用權限是指只有創建人可以查看記錄,其他人沒有權限查看。
- 通過角色控制上下級數據權限: 在實際的場景中,上級往往需要查看下級的數據,設置數據的專用性無法滿足該需求。比如美國部銷售總監需要看到其部門下的用戶數據,英國部銷售總監需要看到英國部下的用戶數據。解決方案是通過角色判斷賬號間的上下級關系,上級可以查看下級的角色。這也是通過簡檔而不通角色關聯權限的好處,因為通過賬號關聯角色,再通過角色關聯賬號的話,賬號和角色間一般是多對多的關系,這樣就無法分辨賬號間的上下級。通過賬號關聯簡檔,簡檔關聯權限,可以保證一個賬號只有一個角色,從而可以判斷出賬號間的上下級關系。
-
通過共享規則控制數據權限: 有些情況,賬號需要查看某個對象下的一些記錄,但是該賬號和創建記錄的賬號在組織架構上沒有上下級關系,比如美國財務部需要查看美國銷售部下的訂單數據,同時為了數據的安全性,不能給美國財務部的賬號查所有業務部門的訂單數據。這時就需要用到共享規則。共享規則的本質是把符合一定條件的記錄共享給一些賬號,共享后這些賬號可以查看或者編輯這些數據。共享規則的配置,需要確定以下四要素:
- 共享的對象:確定共享的是哪個對象的數據。
- 共享數據的條件:確定該對象下的哪些數據需要共享。
- 共享的賬號:確定這些數據需要貢獻給哪些賬號。
- 共享權限:確定共享后,賬號對這些數據的權限,分為只讀和編輯權限。
總結:今天和大家探討了權限設計的2種模型和權限設計包含內容。大家可以結合公司的特點,選擇合適的設計方法。在實際項目中,會遇到多個系統,多個用戶類型,多個使用場景,這就需要具體問題具體分析,但最核心都離不開這些方法,我們可以在其基礎上進行擴展來滿足需求。