手把手帶你設(shè)計(jì)B端產(chǎn)品后臺(tái)(2)——權(quán)限篇
在系統(tǒng)設(shè)計(jì)中,賬號(hào)的用戶權(quán)限設(shè)計(jì)是最令人頭痛的,但又有著至關(guān)重要的作用。本文就B端產(chǎn)品后臺(tái)的用戶權(quán)限該如何設(shè)計(jì)展開探討,總結(jié)了自己在實(shí)戰(zhàn)中的相關(guān)經(jīng)驗(yàn),希望對(duì)你有所啟發(fā)。
前一篇文章賬號(hào)篇跟大家聊了聊產(chǎn)品后臺(tái)的基本邏輯和賬號(hào)體系設(shè)計(jì)相關(guān)的經(jīng)驗(yàn)。本文繼續(xù)聊最讓人頭痛的用戶權(quán)限設(shè)計(jì)。
開始之前,先回顧一下后臺(tái)信息的分類,對(duì)于理解用戶權(quán)限設(shè)計(jì)有至關(guān)重要的作用。后臺(tái)最核心的對(duì)象就是數(shù)據(jù),B端后臺(tái)一切的操作行為,本質(zhì)上是對(duì)數(shù)據(jù)增、刪、改、查的操作。
數(shù)據(jù)可以大體分為:
- 產(chǎn)品數(shù)據(jù)(文圖音視等數(shù)字內(nèi)容、實(shí)體商品、算法模型等)。
- 用戶信息(個(gè)人資料、賬號(hào)、權(quán)限、組織等)。
- 用戶行為數(shù)據(jù)(PV、UV、點(diǎn)擊、用戶反饋等)。
- 業(yè)務(wù)數(shù)據(jù)(如用戶的訂單、商家的庫存、發(fā)布的內(nèi)容等)。
帶有用戶信息的賬號(hào)訪問、使用服務(wù)商提供的產(chǎn)品數(shù)據(jù),在整個(gè)過程中會(huì)留存大量的訪問、點(diǎn)擊、跳出等用戶行為數(shù)據(jù),用戶購買產(chǎn)品、發(fā)布內(nèi)容、提交表單等行為會(huì)產(chǎn)生業(yè)務(wù)數(shù)據(jù)。
一、系統(tǒng)權(quán)限的分類
根據(jù)筆者的經(jīng)驗(yàn),后臺(tái)的系統(tǒng)權(quán)限可以大致分為三類:
- 功能權(quán)限:該用戶在系統(tǒng)中,可以使用哪些功能模塊,使用哪些具體的功能。
- 數(shù)據(jù)權(quán)限:該用戶在系統(tǒng)中,可以訪問哪些數(shù)據(jù),是否可以對(duì)數(shù)據(jù)進(jìn)行增、刪改、查等操作。
- 組織權(quán)限:對(duì)于B端產(chǎn)品來說,往往也涉及到組織架構(gòu)。該用戶在不同的組織和不同的位置上,天然具有某些權(quán)限。比如在OA系統(tǒng)中的審批權(quán)限。與功能和數(shù)據(jù)權(quán)限有一些交叉,但是比較重要,所以單獨(dú)歸為一類。
為什么說權(quán)限系統(tǒng)復(fù)雜呢?有過權(quán)限系統(tǒng)設(shè)計(jì)經(jīng)驗(yàn)的同仁可能深有體會(huì)。
首先,用戶前端、用戶后臺(tái)、系統(tǒng)后臺(tái)都有自己的一套權(quán)限體系,而且三者之間也會(huì)存在一定的關(guān)聯(lián)關(guān)系。三個(gè)系統(tǒng)的權(quán)限交織在一起,相互依存、相互限制,會(huì)導(dǎo)致整體的權(quán)限系統(tǒng)極其難以設(shè)計(jì)。
其次,功能權(quán)限、數(shù)據(jù)權(quán)限和組織權(quán)限同樣是密不可分的。在一個(gè)組織特定位置的用戶,其權(quán)限一定涉及功能權(quán)限和數(shù)據(jù)權(quán)限。訪問功能的同時(shí),一定會(huì)涉及到調(diào)取數(shù)據(jù)。而數(shù)據(jù)的訪問,也必然也要依賴數(shù)據(jù)查詢相關(guān)功能的支持。
最后,權(quán)限系統(tǒng)是要為業(yè)務(wù)服務(wù)的。需要根據(jù)業(yè)務(wù)合理設(shè)計(jì)權(quán)限系統(tǒng),為相應(yīng)的賬號(hào)賦予滿足業(yè)務(wù)需求的權(quán)限。但是不同的業(yè)務(wù)有不同的特點(diǎn)、流程、客戶&用戶需求,那么權(quán)限系統(tǒng)必然也會(huì)因此產(chǎn)生各種個(gè)性化、定制化的需求。
二、系統(tǒng)權(quán)限的設(shè)計(jì)原則
既然后臺(tái)權(quán)限的設(shè)計(jì)如此復(fù)雜和困難,那么我們?nèi)绾握莆赵O(shè)計(jì)后臺(tái)權(quán)限的方法論呢?
筆者先介紹幾個(gè)設(shè)計(jì)原則,然后各位讀者可以結(jié)合后續(xù)的具體方法論進(jìn)行實(shí)際的體會(huì)。
原則1 權(quán)限系統(tǒng)要為業(yè)務(wù)服務(wù)
這一條原則不證自明,也是最重要的設(shè)計(jì)原則。因此也自然要求涉及權(quán)限系統(tǒng)之前,一定要把業(yè)務(wù)邏輯梳理清楚。
原則2 權(quán)限系統(tǒng)設(shè)計(jì)一定要解耦合
無論在產(chǎn)品設(shè)計(jì)上還是技術(shù)架構(gòu)上,務(wù)必注意功能權(quán)限、數(shù)據(jù)權(quán)限、組織權(quán)限之間和內(nèi)部的解耦合。如果設(shè)計(jì)和技術(shù)架構(gòu)不合理,將不同的權(quán)限耦合在一起,可能在未來業(yè)務(wù)變更的時(shí)候,出現(xiàn)大坑。
比如,如果將業(yè)務(wù)入口的權(quán)限和其內(nèi)部具體功能模塊的權(quán)限耦合起來。一旦頁面需要調(diào)整業(yè)務(wù)入口,那么其內(nèi)部功能模塊都可能會(huì)受到影響。
原則3 權(quán)限系統(tǒng)設(shè)計(jì)要有兼容性
業(yè)務(wù)是不斷變化的,其相應(yīng)的權(quán)限也一定會(huì)隨之變化,因此權(quán)限系統(tǒng)設(shè)計(jì)要保證兼容性,避免因?yàn)閷懰馈]有為新功能留后路等導(dǎo)致無法適應(yīng)業(yè)務(wù)的發(fā)展。
原則4 權(quán)限系統(tǒng)設(shè)計(jì)要盡量簡潔
奧卡姆剃刀原理告訴我們,“如非必要,勿增實(shí)體?!睓?quán)限系統(tǒng)本身就是復(fù)雜性很高的系統(tǒng),每增加一個(gè)要素,其設(shè)計(jì)和開發(fā)、測試復(fù)雜度都會(huì)激增。因此在滿足解耦合和兼容性的基礎(chǔ)上,權(quán)限系統(tǒng)設(shè)計(jì)要盡量簡潔。在成本和效率、長期和短期等之間尋找平衡。
原則5 從前臺(tái)到后臺(tái)依次設(shè)計(jì)
建議從用戶前端、用戶后臺(tái)、系統(tǒng)后臺(tái)的順序,從前到后、由易到難的順序設(shè)計(jì)權(quán)限系統(tǒng)。從簡單的權(quán)限開始設(shè)計(jì),上手會(huì)比較容易,而且在設(shè)計(jì)過程中也能為更復(fù)雜權(quán)限的設(shè)計(jì)提供思路。而且一旦設(shè)計(jì)出現(xiàn)問題,局部優(yōu)化或推翻重構(gòu)的成本會(huì)更小。
各位讀者可以看出,以上的五個(gè)設(shè)計(jì)原則其實(shí)也是產(chǎn)品設(shè)計(jì)原則通用的一些原則。符合用戶習(xí)慣、易用性、可讀性、即時(shí)反饋等設(shè)計(jì)原則權(quán)限系統(tǒng)設(shè)計(jì)同樣要遵守。
不過在筆者的過往經(jīng)歷中,認(rèn)為以上五個(gè)原則是最重要的且容易踩坑的地方,因此特意拎出來加以強(qiáng)調(diào)。
三、系統(tǒng)權(quán)限的設(shè)計(jì)方法
權(quán)限系統(tǒng)的設(shè)計(jì)一般可以分成如下幾種思路:
- 完全寫死。對(duì)于非常簡單、基本不需要迭代的系統(tǒng),可以直接寫死權(quán)限。
- 設(shè)置可選模板。固定幾種權(quán)限角色,比如超級(jí)管理員、管理員、一般用戶等,直接將模板關(guān)聯(lián)給賬號(hào)。適用于權(quán)限劃分清晰、業(yè)務(wù)相對(duì)簡單的系統(tǒng)使用。
- 可配置的模塊化權(quán)限系統(tǒng)。將權(quán)限通過梳理、歸納,設(shè)計(jì)為一個(gè)個(gè)獨(dú)立的可配置項(xiàng),允許為每個(gè)賬號(hào)靈活配置權(quán)限。該方法最為靈活、普適,但是設(shè)計(jì)和開發(fā)難度最大。
筆者選取難度最大的可配置的模塊化權(quán)限系統(tǒng),并且綜合功能權(quán)限、數(shù)據(jù)權(quán)限、組織權(quán)限,講解權(quán)限系統(tǒng)的設(shè)計(jì)思路。
掌握了最復(fù)雜的情況,其它相對(duì)簡單的權(quán)限系統(tǒng)設(shè)計(jì)自然手到擒來。
1. 系統(tǒng)權(quán)限分析
在著手設(shè)計(jì)之前,建議首先對(duì)系統(tǒng)的業(yè)務(wù)流程和需求、并結(jié)合權(quán)限進(jìn)行完整的系統(tǒng)權(quán)限分析。
如何合理地分析系統(tǒng)的業(yè)務(wù)流程和需求,計(jì)劃放到后續(xù)的業(yè)務(wù)系統(tǒng)重點(diǎn)講解。如果該系列大家喜歡、且投票踴躍,筆者會(huì)堅(jiān)持繼續(xù)更新。
分析腦圖的樣例如下。
腦圖中涉及的概念解釋如下。
- 部門:服務(wù)客戶的組織架構(gòu),可能存在多個(gè)層級(jí)。部門內(nèi)的員工賬號(hào)關(guān)聯(lián)到對(duì)應(yīng)的部門下,以和實(shí)際的組織架構(gòu)保持一致。
- 角色:每種角色作為一種權(quán)限設(shè)置的集合??梢酝ㄟ^為賬號(hào)配置角色,讓賬號(hào)獲得相應(yīng)的權(quán)限。
系統(tǒng):提供服務(wù)不同的系統(tǒng),可能為用戶前端、用戶后臺(tái)、系統(tǒng)后臺(tái)。 - 模塊:系統(tǒng)中的功能模塊??赡艽嬖诙鄠€(gè)層級(jí)。比如旅行軟件,可以分為機(jī)票、酒店、火車票出行等,出行又可以分為網(wǎng)約車、租車等。
- 功能:根據(jù)業(yè)務(wù)需求,需要管控功能的最小顆粒度,比如網(wǎng)約車可以分為快車、專車、拼車,以及因公付款、個(gè)人墊付等。注意功能拆分一定要遵循MECE原則,完整且獨(dú)立。
- 數(shù)據(jù):某些功能可能涉及到數(shù)據(jù)的增、刪、改、查,比如說賬號(hào)管理、用戶發(fā)布內(nèi)容管理等權(quán)限。
需要特殊說明的是,考慮到組織是客戶實(shí)際存在的組織架構(gòu),且有可能用到多個(gè)系統(tǒng)。因此把部門作為第一層級(jí)。
這樣去做梳理,可能對(duì)產(chǎn)品經(jīng)理的全局觀和邏輯思維能力要求比較高,但是更符合實(shí)際業(yè)務(wù)情況。最終完成的權(quán)限系統(tǒng)兼容性也更強(qiáng)。
如果只負(fù)責(zé)一個(gè)系統(tǒng),那么也可以以系統(tǒng)為第一層級(jí),先把自己負(fù)責(zé)系統(tǒng)的權(quán)限梳理清楚。
注意如果多個(gè)系統(tǒng)是統(tǒng)一的賬號(hào)體系、且存在一個(gè)部門使用多個(gè)系統(tǒng)的情況,也需要與相關(guān)的產(chǎn)品同時(shí)做好同步,保證大家都設(shè)計(jì)思路一致。否則萬一后續(xù)要做系統(tǒng)之間的整合,那么重構(gòu)的工作量會(huì)大大增加。
2. 系統(tǒng)權(quán)限設(shè)計(jì)
根據(jù)梳理出的權(quán)限系統(tǒng)腦圖,就可以比較清晰、方便地完成系統(tǒng)權(quán)限的產(chǎn)品設(shè)計(jì)工作。
筆者簡單模擬了一個(gè)系統(tǒng)權(quán)限的線框圖,以方便各位讀者理解。
首先設(shè)計(jì)部門列表,根據(jù)客戶的組織架構(gòu)設(shè)計(jì)各級(jí)部門的列表和顯示重要的字段即可。對(duì)部門的操作同樣包括增、刪、改、查。
然后是部門下的員工列表。每一個(gè)員工即代表一個(gè)可使用系統(tǒng)的實(shí)際賬號(hào)。那么如何快速為不同的賬號(hào)配置權(quán)限呢?
關(guān)鍵在于角色這個(gè)字段的設(shè)計(jì)。在實(shí)際組織中,雖然一個(gè)部門內(nèi)有很多的員工組成,但是可以按照其工作屬性進(jìn)行分類。比如從職級(jí)維度,部門長、組長、員工、實(shí)習(xí)生等等。從職能上劃分,財(cái)務(wù)、會(huì)計(jì)、銷售、售前、售后等等。
有了角色,我們便可以根據(jù)該角色在系統(tǒng)中承擔(dān)的業(yè)務(wù)范圍,為其分配不同的系統(tǒng)權(quán)限,避免相同權(quán)限的賬號(hào)要重復(fù)配置。
下一步就是角色管理?。根據(jù)業(yè)務(wù)需要,可以為該部門在不同的系統(tǒng)中設(shè)置角色,以滿足該部門員工在不同系統(tǒng)中的?業(yè)務(wù)需求。
為了使用方便,可以提供一些系統(tǒng)中最常見的角色模板,方便客戶的管理員直接使用,比如超級(jí)管理員、管理員等?。
其中比較特殊的是超級(jí)管理員,其是一個(gè)系統(tǒng)中配置賬號(hào)的最基本、默認(rèn)要有的角色?。其最起碼應(yīng)當(dāng)有最全的賬號(hào)管理權(quán)限,以為其它同事創(chuàng)建賬號(hào)、分配權(quán)限?。故該角色不應(yīng)當(dāng)被編輯和刪除?。
如果默認(rèn)的角色模板不能滿足業(yè)務(wù)需求,還可以再新增角色?,完成個(gè)性化的權(quán)限設(shè)置。
最后也是最重要的,就是角色?具體的權(quán)限設(shè)置。包括角色名稱、角色權(quán)限配置、角色備注等?字段。
權(quán)限配置就是將腦圖中拆解的各模塊的功能權(quán)限和數(shù)據(jù)權(quán)限羅列出來,以為該角色勾選需要的權(quán)限?。
為了使用方便,還可以有復(fù)制角色權(quán)限的功能(也可以放到角色列表中)?,可以直接沿用已有的、近似的角色權(quán)限?,再進(jìn)行微調(diào),就可以快速完成一種新角色的添加。
3. 系統(tǒng)權(quán)限拾遺
本文主要講統(tǒng)一的設(shè)計(jì)方法論,也不宜結(jié)合具體的?業(yè)務(wù)案例講。因?yàn)椴煌瑯I(yè)務(wù)的差別太大,一旦過于具體,通用性和可遷移性就比較差?。
“授人以漁,而不是授人以魚”,一直是筆者的經(jīng)驗(yàn)分享之一。
雖然本文看起來可能也沒有想象的那么復(fù)雜。但是等到結(jié)合具體業(yè)務(wù)執(zhí)行的時(shí)候,各位同仁就能發(fā)現(xiàn)很多困擾和?難以取舍的點(diǎn)。
就比如做系統(tǒng)權(quán)限分析時(shí),功能權(quán)限拆分到什么顆粒度?如何做到MECE原則要求的完整性和獨(dú)立性??
拆得越細(xì),自然越靈活,但是開發(fā)成本越高,也越容易出現(xiàn)功能耦合的情況?;但是拆得過粗,可能無法滿足業(yè)務(wù)權(quán)限的精確管控?,后續(xù)需要拓展時(shí),就需要考慮到新老數(shù)據(jù)的兼容性問題。
還有賬號(hào)的角色變更或角色權(quán)限變更的時(shí)候,是否要即時(shí)生效?
如果需要即時(shí)生效,就需要每個(gè)功能在執(zhí)行的時(shí)候都要校驗(yàn)權(quán)限,系統(tǒng)開銷?會(huì)很高、效率也會(huì)很低。
如果只在登錄時(shí)候訪問權(quán)限,那么系統(tǒng)權(quán)限變更就會(huì)存在較大的延遲?。
折中的方案可能是定時(shí)刷新賬號(hào)的權(quán)限,那么也可能涉及到主動(dòng)通知系統(tǒng)前端時(shí)機(jī)的問題?。
而且當(dāng)賬號(hào)使用過程中出現(xiàn)了權(quán)限變更的情況?,那么該如何處理?刷新頁面隱藏功能還是有新的請(qǐng)求時(shí)候報(bào)錯(cuò)?
管理員做刪除和禁用操作的時(shí)候也存在類似的問題。而且刪除和禁用的時(shí)候一定要判斷是否滿足刪除的條件。
比如刪除部門時(shí),要考慮部門下是否還有子部門和賬號(hào)?,如果有是否允許刪除?
再比如刪除角色時(shí),如果有賬號(hào)關(guān)聯(lián)著該角色,是否允許刪除??如果需要先取消所有賬號(hào)的關(guān)聯(lián)才允許刪除,那么如何?方便地批量操作?如果允許直接刪除,那么如何方便地為受影響賬號(hào)分配新的角色?
這些問題,筆者也很難給出標(biāo)準(zhǔn)的、普適的答案,要根據(jù)具體的業(yè)務(wù)情況具體分析?。
本次關(guān)系到系統(tǒng)權(quán)限的設(shè)計(jì)經(jīng)驗(yàn)就分享到這里?。相信大家都能看到筆者的用心,不僅毫無保留地介紹經(jīng)驗(yàn),還?貼心地自己畫了線框圖,以幫助大家理解。碼字不易,?請(qǐng)大家投票支持,給筆者繼續(xù)分享下去的動(dòng)力!
為我投票
我在參加人人都是產(chǎn)品經(jīng)理2022年度作者評(píng)選,希望喜歡我的文章的朋友都能來支持我一下~
點(diǎn)擊下方鏈接進(jìn)入我的個(gè)人參選頁面,點(diǎn)擊紅心即可為我投票。
每人每天最多可投35票,投票即可獲得抽獎(jiǎng)機(jī)會(huì),抽取書籍、人人都是產(chǎn)品經(jīng)理紀(jì)念周邊和起點(diǎn)課堂會(huì)員等好禮哦!
投票傳送門:https://996.pm/YyDmr
專欄作家
一直產(chǎn)品汪,微信公眾號(hào):apmdogy,人人都是產(chǎn)品經(jīng)理專欄作家。邏輯型產(chǎn)品經(jīng)理,致力于將科學(xué)思維與產(chǎn)品經(jīng)理方法論結(jié)合。關(guān)注人工智能、教育領(lǐng)域,擅長產(chǎn)品孵化、需求挖掘、項(xiàng)目管理、流程管理等產(chǎn)品技能。
本文原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)許可,禁止轉(zhuǎn)載。
題圖來自Unsplash,基于CC0協(xié)議。
該文觀點(diǎn)僅代表作者本人,人人都是產(chǎn)品經(jīng)理平臺(tái)僅提供信息存儲(chǔ)空間服務(wù)。
權(quán)限設(shè)計(jì)確實(shí)頭疼,而且不止一次。有要求組織部門控?cái)?shù)據(jù)查看并詳細(xì)到表格字段,角色控系統(tǒng)、模塊和按鈕操作,一人能關(guān)聯(lián)多個(gè)部門,還能關(guān)聯(lián)多個(gè)角色;有要求權(quán)限關(guān)聯(lián)到崗位上,崗位關(guān)聯(lián)到部門上,一人還得能身兼多崗;有要求除此之外,還得能按具體人,配置特殊權(quán)限……
一毛一樣的需求場景……都快做吐了
請(qǐng)教一下,開頭說權(quán)限最好不要耦合,但是后面的設(shè)計(jì)就是把數(shù)據(jù)的設(shè)置項(xiàng)作為功能的子集這樣不是又耦合了嘛?
這里說的是跟功能密切相關(guān)的數(shù)據(jù),比如賬號(hào)信息、用戶發(fā)布信息等
對(duì)于純數(shù)據(jù)分析平臺(tái),重點(diǎn)關(guān)注數(shù)據(jù)權(quán)限即可