什么是后臺產(chǎn)品?
簡而言之,我們?nèi)粘J褂玫幕ヂ?lián)網(wǎng)應(yīng)用,有一些需要做數(shù)據(jù)/信息的呈現(xiàn),管理維護這些數(shù)據(jù)/信息的產(chǎn)品,就是后臺產(chǎn)品。舉個例子,在音樂app中有很多的歌曲、專輯、歌手等的內(nèi)容,這些內(nèi)容都需要在曲庫后臺中進行上傳、信息關(guān)聯(lián)等操作,這里的曲庫后臺就是一個后臺產(chǎn)品。

后臺產(chǎn)品為什么要做權(quán)限管理
后臺產(chǎn)品中有大量的數(shù)據(jù),需要較多的人員來對這些數(shù)據(jù)進行管理,不同人分別負責(zé)管理自己的數(shù)據(jù)。且不同的人,在整個數(shù)據(jù)管理流程中,需要進行的操作不同。那么此時,我們就需要對這些人員的權(quán)限進行不同的定義,具體人員可以看什么,不可以看什么,從而確保數(shù)據(jù)的穩(wěn)定性,降低數(shù)據(jù)泄露的風(fēng)險。同樣用曲庫后臺舉例子,有的人負責(zé)維護華語音樂,有的人負責(zé)英語音樂,那么負責(zé)話語音樂的人,不可以操作英語音樂的數(shù)據(jù)。在負責(zé)華語音樂的人中,有的人負責(zé)上傳歌曲源,有的人負責(zé)整理音樂,打包成歌單呈現(xiàn)給用戶,那么負責(zé)上傳歌曲源的人,不可以去進行歌單的編輯。
權(quán)限管理的基礎(chǔ)-組織結(jié)構(gòu)
人員層級的劃分是做權(quán)限管理的基礎(chǔ),幾乎稍有規(guī)模的公司,都會有人員管理層級的劃分,我們稱之為組織結(jié)構(gòu),在組織結(jié)構(gòu)中,明確指定人員的匯報關(guān)系、負責(zé)的業(yè)務(wù)模塊、人員的崗位等等。
組織結(jié)構(gòu)的一個簡單示意圖如下,節(jié)點用于對業(yè)務(wù)模塊、工作范疇進行劃分。在一個業(yè)務(wù)模塊內(nèi),不同職能的人員,用崗位來進行區(qū)分,例如研發(fā)進行功能的開發(fā),QA進行功能的驗證測試。

權(quán)限管理體系如何搭建
權(quán)限管理體系可以劃分為三個層級:功能權(quán)限、數(shù)據(jù)權(quán)限、按鈕/字段權(quán)限

1,功能權(quán)限:定義人員是否可以訪問某個頁面。例如曲庫后臺,曲庫資源的管理人員,可以訪問曲庫資源的管理頁面,不可以訪問歌單資源的管理頁面。
2,數(shù)據(jù)權(quán)限:定義人員在頁面中,可查看的數(shù)據(jù)的范圍。例如曲庫后臺,曲庫資源的管理人員中,華語音樂管理員可查看華語音樂,不可查看英語音樂。
3,按鈕/字段權(quán)限:定義人員針對查看到的數(shù)據(jù),可以進行的操作,或可查看的字段。例如曲庫后臺有歌曲的上傳和刪除的操作,曲庫資源的管理人員中,上傳資源的人員只能看到上傳按鈕,不可查看歌曲的刪除按鈕。只可查看歌曲的基礎(chǔ)信息,不可查看歌曲的定價信息。
從上圖和上面的描述舉例中,可以看出來,這三層權(quán)限控制是逐漸遞進的關(guān)系,從最基本頁面訪問,到具體數(shù)據(jù)信息操作,對于權(quán)限的粒度管理越來越細致。
那么基于這個理論基礎(chǔ),在設(shè)計上如何實現(xiàn)呢?
1,功能權(quán)限:頁面是具體功能的一個實現(xiàn),而功能的使用與人員的職能相關(guān),結(jié)合我們前面講的組織結(jié)構(gòu)可以得出,功能權(quán)限與崗位密切相關(guān)。因此我們做權(quán)限配置時,可以考慮將崗位與頁面權(quán)限綁定,這樣在崗位人員更替的過程中,只要崗位職能不變,那么我們對崗位和頁面權(quán)限的綁定就是無需變更的。例如編輯人員擁有曲庫編輯頁的權(quán)限,運營人員擁有歌單編輯頁的權(quán)限。
2,數(shù)據(jù)權(quán)限:同崗位的人員負責(zé)不同范圍的數(shù)據(jù),那我們可以通過定義人員可查看自己負責(zé)標簽范疇內(nèi)的數(shù)據(jù)來實現(xiàn)數(shù)據(jù)權(quán)限的管控。如果數(shù)據(jù)量特別大,同崗位的人員也需拆分給不同的管理人員來管理,甚至管理人員還是多層級的,那么此時就需要借助組織節(jié)點一起定義數(shù)據(jù)權(quán)限,最末級節(jié)點人員查看自己標簽范疇內(nèi)的數(shù)據(jù),上級節(jié)點的人員查看自己下級節(jié)點人員的數(shù)據(jù)匯總。
3,按鈕/字段權(quán)限:按鈕/字段權(quán)限本質(zhì)上還是對一個功能的控制,只是這個功能內(nèi)嵌于頁面內(nèi),比頁面的顆粒度更細,所以按鈕/字段權(quán)限可以和功能權(quán)限一樣,與崗位綁定。
權(quán)限管理體系的豐富拓展
上述的三層權(quán)限體系可以滿足我們基礎(chǔ)的權(quán)限控制的需求了,但是在一些特殊的情況下,有一些上述體系不能滿足需求的情況,該怎么去拓展這個權(quán)限控制體系呢?以下列舉了一些。
場景一:同崗位的員工,進一步進行了工作模塊的劃分,希望他們可以擁有不同的功能權(quán)限
對于崗位通用的權(quán)限,我們可以用崗位與權(quán)限綁定來配置。若同崗位員工的工作模塊不同,有一些權(quán)限不可直接賦予崗位,而是與具體人員關(guān)聯(lián)時,可以抽象出一層虛擬角色,這些角色集成一個工作模塊的特殊權(quán)限,然后將角色直接賦予具體的人員。這樣可以用虛擬角色來進行權(quán)限的規(guī)范管理,同時又能滿足同崗位人員需要配置特殊權(quán)限的情況。
場景二:某些員工臨時支援他人工作,需要臨時擁有一些功能和數(shù)據(jù)權(quán)限,但是組織結(jié)構(gòu)不可調(diào)整
組織結(jié)構(gòu)中的崗位和節(jié)點上下級關(guān)系,定義好了人員的全部權(quán)限。當(dāng)對象的組織崗位關(guān)系不可調(diào)整,但是需要添加對象的各項權(quán)限時,我們可以通過加成權(quán)限來實現(xiàn)。加成權(quán)限就是指人員擁有自身所在組織崗位的權(quán)限,同時還可以擁有特殊配置的權(quán)限。
這個特殊配置的權(quán)限怎么配呢?
這個配置的基礎(chǔ)結(jié)構(gòu)時,配置對象在某些系統(tǒng)中擁有某些節(jié)點崗位的全部權(quán)限。我們把配置對象、某些系統(tǒng)、某些節(jié)點崗位拆開描述如下。

1,配置對象:這個要臨時添加權(quán)限的對象,可能是員工,可能是某組織節(jié)點全部人員,甚至某崗位全部人員,因此這個配置對象可以根據(jù)需求去拓展,支持多選。
2,某些系統(tǒng):一個大的后臺中可以進一步拆分系統(tǒng),如果需要限制是這個加成權(quán)限只在部分系統(tǒng)生效,那我們可以增加生效系統(tǒng)的配置。
3,某些節(jié)點崗位:這個就是配置對象具體需要什么節(jié)點崗位的權(quán)限,在某些節(jié)點崗位這一環(huán)節(jié)中配置。
場景三:某些非頂級節(jié)點的員工,需要擁有全部數(shù)據(jù)的權(quán)限;某些有問題的員工,不可擁有任何數(shù)據(jù)的權(quán)限
這個是最簡單的,可以通過添加人員的白名單和黑名單來解決。白名單中的員工,默認賦予全部數(shù)據(jù)的權(quán)限。黑名單中的員工,默認不擁有任何數(shù)據(jù)的權(quán)限。
白名單和黑名單的賦予,支持給通過節(jié)點、崗位、人員來配置,操作更靈活方便。
以上是我對后臺產(chǎn)品權(quán)限設(shè)計體系的一些分享,希望對進行后臺產(chǎn)品設(shè)計的初級同學(xué)有一些幫助,歡迎留言一起交流。