最近讀到有關后臺權限管理這塊的文章,覺得有點意思,遂去做了一下調(diào)研。我了解到,后臺系統(tǒng)與saas實際上有許多共通之處,于是去調(diào)研了一下saas。大型的saas軟件之所以能夠滿足一個大企業(yè)的工作需求,如單租戶、多租戶,一個重要的原因就是權限的分級系統(tǒng)十分完善,但即使如此,仍有一部分需求是無法滿足的。
目前世界上比較大的saas企業(yè),國外如Salesforce、zendesk、微軟的Dynamic365,國內(nèi)如Udesk、美洽、環(huán)信之類。
權限系統(tǒng)
權限基本上可以分為此【功能權限/數(shù)據(jù)權限】兩類,每種權限基本上都可以設置成【可讀/不可讀/可編輯】三種狀態(tài),這三種也基本上可以滿足大部分需求了。
功能權限:即某個功能的權限,如一個按鈕是否可點擊、一個模塊是否可用等等。常見場景如,運營人員應該是沒有財務信息這個模塊的。
數(shù)據(jù)權限:即某些數(shù)據(jù)的權限,如某個字段是否可見、某個圖表是否可見等。常見的場景如,在數(shù)據(jù)統(tǒng)計中心這個模塊,運營人員是不能見到財務報表的,而RD應該是看不到每日新增用戶量的,管理員就應該所有數(shù)據(jù)都能看到和操作。
權限的管理系統(tǒng)包含兩方面,一是權限,二是用戶。兩者的對應關系,構成了整個系統(tǒng)。
權限
1.單個的功能權限
管理功能權限的最小單位,一般是某個頁面的操作,如點擊、拖拽等。如權限abcd。
2.權限模塊
功能模塊層級上高于最小單位的權限集合。這種情況是取決于后臺整體的架構,如權限ab從屬于敏感詞庫。敏感詞庫就是一個權限模塊,可以直接把權限模塊分配給用戶,用戶將擁有模塊中的所有權限。此處模塊相當于是一個入口,權限關閉相當于隱藏入口。
3.權限集
相比權限模塊是由于架構原因自成的,權限集是由管理員自定義設置的。如可以把權限a和權限c提出來新建一個權限集Q,有該權限集的用戶可以使用這兩個權限。
4.數(shù)據(jù)權限
某些數(shù)據(jù)或者字段、對象的權限,包括是否可讀、是否可寫。
5.簡檔
來自于Saleforce,可以對應多個權限集。這一塊與用戶付費、許可證有關,暫且不細說。
用戶
用戶管理的思路與權限的類似,即分級、分類和單獨配置。
1.單個用戶
即給單個用戶配置某個權限或權限集。不過這種配置方法維護起來不方便,實際中使用應該很少(這一句是我詢問了幾個同行根據(jù)情況yy的)。如何不方便也很明顯,這里就不說了。
2.用戶小組
把若干用戶拉到一起組成一個小組,或者貼上同一個標簽(效果一樣),形成一個權限所有體。一個用戶應該是可以同時在多個小組的。如公司臨時做一個新活動,只需要一個產(chǎn)品和一個運營,把產(chǎn)品狗b和喵d拉一起組個隊。
3.角色
每個用戶盡可以分配一個角色,一個角色下可以有多個用戶。角色分從屬關系,上級的角色應該默認擁有所有下級的權限的,即可以查看或編輯下級角色的權限內(nèi)容。產(chǎn)品組長顯然是可以隨時查看編輯產(chǎn)品狗b的權限內(nèi)容的。
小結
分別看用戶和權限,整體并不復雜。不過分散開來,用戶-權限的對應關系就有很多種了。而且一般的app后臺,根本用不到這么多種對應關系,即使是salesforce這種量級的saas企業(yè)也沒有全部都應用。小企業(yè)可能更多關注成本與效率,最短時間內(nèi)完成功能即可(大白話:能用就行)。