銀杏葉落盡,只留下淡黃的記憶剩彬,浸潤著北國的風光酷麦。
這個世上,說喜歡你的人很多喉恋,能陪你到最后的至多只有一個沃饶。
這個世上,嚷嚷著要旅行追求詩和遠方的人很多轻黑,能做到的少之又少糊肤。
同樣,說起閱讀苔悦,很多人都把它寫在了愛好一欄轩褐。倘若你要讓其拿出幾個得意的作品,能拿出來的很少玖详。
把寫作當成生活一部分,堅持下來的更是寥寥無幾勤讽。
任歲月荏苒蟋座,任世事滄桑。
我亦微笑脚牍,我亦無悔向臀。歲月靜好,念你如初诸狭。
一券膀、"緣起"
上周的專欄——后臺系統(tǒng)產(chǎn)品設(shè)計之《用戶權(quán)限系統(tǒng)》,發(fā)布后驯遇,有很多小伙伴分享轉(zhuǎn)發(fā)文章芹彬,在此一并謝謝,也有小伙伴加我微信好友叉庐,交流一些用戶角色權(quán)限這塊的內(nèi)容舒帮。比如收到鵝廠的小伙伴來信:
涉及to b用戶權(quán)限角色管理這塊跟to c最大的差異化是什么呢?
正如圖片中內(nèi)容一樣陡叠,當時在現(xiàn)場玩郊,沒能來得及回復,后來也只是簡單回復了下枉阵,今天在這里詳細說說吧译红。
權(quán)限設(shè)計在B端的各類后臺管理系統(tǒng)里比較常見。一般的場景是不同類型的人員需要在一個系統(tǒng)里協(xié)同完成某項業(yè)務(wù)操作兴溜,他們分別具有不同的權(quán)限侦厚,操作不同的資源反璃。
在C端產(chǎn)品里,也能夠看到權(quán)限的設(shè)計的存在假夺,相對B端的各類后臺管理系統(tǒng)來講的話淮蜈,要簡單一些。
比如已卷,微信群里梧田,有兩個角色,群主和普通成員侧蘸,分別有不同的權(quán)限裁眯。
普通成員:添加群成員,一般發(fā)言等
群主:群聊邀請確認讳癌,刪除群成員穿稳,設(shè)置群公告,群主管理權(quán)轉(zhuǎn)讓晌坤。
群主不僅有普通成員所有的權(quán)限逢艘,還有一些特殊權(quán)限,這些權(quán)限是普通成員所沒有的骤菠。下圖是根據(jù)微信的權(quán)限例子畫的一個簡單權(quán)限結(jié)構(gòu)模型它改。
二、理論
對系統(tǒng)來說商乎,不論是群主還是普通成員央拖,他們都是用戶,但各自的權(quán)限不相同鹉戚,但軟件設(shè)計不可能根據(jù)不同的類型的用戶單獨去配置功能鲜戒。如果后期增加了某一功能,豈不是需要分別對不同類型的用戶配置相應(yīng)功能抹凳。不管這個操作后期是不是讓電腦來操作完成,都達不到功能靈活配置的需要却桶。
權(quán)限控制本質(zhì)是用戶與資源的的配置颖系,但是我們不可能為每個用戶都要去配置權(quán)限嗅剖。引入了角色對象,是為了將用戶與權(quán)限隔離開嘁扼,降低兩者之間的耦合度,也就是兩者之間的關(guān)系趁啸。通過角色來控制用戶的權(quán)限分配督惰,做到弱化用戶與權(quán)限之間關(guān)聯(lián)。比如旅掂,某個角色因需求的變化引起權(quán)限的增加或減少赏胚,我們只需要控制需求變動對用戶角色的影響即可。
微信群的例子里面商虐,群主與用戶面向的資源有重疊的部分,也有差異的部分典勇。不管是重疊的部分也好,還是差異的部分也罷割笙,他們對權(quán)限都是通過功能的有無控制來實現(xiàn)眯亦。
比如說,當群成員較少的時候搔驼,群內(nèi)每個人都可以改群名稱,他們都有這個功能。
但群成員的刪除扔字,只有群主有,群成員無扭粱。這里未涉及到不同用戶角色擁有同一個功能震檩,但操作的資源的廣度不一樣琢蛤。所以說,這里權(quán)限設(shè)計通過功能的控制已經(jīng)滿足系統(tǒng)設(shè)計的需要博其。
三迂猴、后臺權(quán)限設(shè)計
但在一些較為復雜的B端后臺管理系統(tǒng)例子里面,僅僅從功能上考慮是不夠的沸毁,還要考慮到數(shù)據(jù)范圍的控制傻寂。
舉例說,某公司內(nèi)部管理系統(tǒng)軟件的權(quán)限設(shè)計携兵,根據(jù)業(yè)務(wù)類型劃分疾掰,使用產(chǎn)品的用戶角色有:
管理員徐紧。主要負責系統(tǒng)不同角色人員的管理。
財務(wù)巴柿。主要負責財務(wù)的成本管理與結(jié)算死遭。比如下圖中的受理工號1。
營運呀潭。主要負責操作中心配送業(yè)務(wù)。比如下圖中的受理工號2糠聪。
質(zhì)控谐鼎。主要負責質(zhì)控考核,配送履約數(shù)據(jù)分析身害。比如下圖中的受理工號3草戈。
按照上面業(yè)務(wù)類型的劃分,他們抽象的功能劃分結(jié)構(gòu)是這樣的:
接著深入思考一下丙猬,在一個部門里费韭,有不同級別的職位,不同的職級的人功能權(quán)限相同揽思,但操作的數(shù)據(jù)范圍是不一樣的。比如說羹令,操作中心山東片區(qū)的的某一個總監(jiān),能查閱到公司在整個山東地區(qū)的配送數(shù)據(jù)福侈,他下屬帶的一個的城市經(jīng)理經(jīng)理,負責魯東地區(qū)業(yè)務(wù)堰汉,那么他就只能看到魯東的業(yè)務(wù)數(shù)據(jù)伟墙,他上級的總監(jiān),不僅能查閱到魯東地區(qū)的業(yè)務(wù)數(shù)據(jù)戳葵,還能查到其它地區(qū)的業(yè)務(wù)數(shù)據(jù)∩希總監(jiān)戏自,副總監(jiān),城市經(jīng)理都有查閱數(shù)據(jù)功能擅笔,但職位不同,所能夠查看的數(shù)據(jù)范圍也就不一樣蠢涝。
不在一個部門里阅懦,同樣會需要這樣的考量徘铝。財務(wù)中心的財務(wù)總監(jiān),因為財務(wù)結(jié)算怕午,可能需要查看所有地區(qū)的業(yè)務(wù)數(shù)據(jù)淹魄,他就需要有查看操作中心負責的所有地區(qū)的業(yè)務(wù)數(shù)據(jù)。產(chǎn)生這種需求是由公司的職能結(jié)構(gòu)決定的甲锡。
上圖是個人對權(quán)限設(shè)計的總結(jié),把系統(tǒng)看作一個完整的資源虎韵,不同角色處于不同位置,占據(jù)的資源不同驶社。其中把握的核心點就是测萎,從兩個方向解構(gòu):
先橫向做功能分解,再縱向做數(shù)據(jù)分解硅瞧。數(shù)據(jù)分解是對功能分解的補充零酪,不是真正意義上的另一個維度的分解冒嫡。
橫向以業(yè)務(wù)類型或業(yè)務(wù)模塊劃分來從功能上分解四苇。
縱向上以職級或組織架構(gòu)來進行數(shù)據(jù)劃分,是對功能權(quán)限進行補充月腋。