如何設(shè)計網(wǎng)站權(quán)限系統(tǒng)?
時間:2024-02-10 23:15:01 | 來源:網(wǎng)站運營
時間:2024-02-10 23:15:01 來源:網(wǎng)站運營
如何設(shè)計網(wǎng)站權(quán)限系統(tǒng)?:后臺產(chǎn)品狗,之前踩過權(quán)限控制系統(tǒng)的大坑。
做完項目整體復盤,發(fā)現(xiàn)坑爹的不是難設(shè)計,而是對現(xiàn)有權(quán)限控制情況的了解程度低。
如果在平臺設(shè)計之初就考慮到權(quán)限控制的問題,是好事。
越早進行系統(tǒng)的考慮,成本越低,效果也越好。
最好的當然是之前有成熟的系統(tǒng)可以接入復用。
如果沒有的話,那就得嘗試自己理解這一套東西,并深入了解現(xiàn)有情況再進行設(shè)計了。
談到權(quán)限控制的設(shè)計,需要先理清楚定義和原理。
所以我們需要看到權(quán)限控制中,控制的本質(zhì),也就是說控制的是什么?
其實是:
用戶與可以進行的行為的關(guān)聯(lián)關(guān)系。
這句話中有3個關(guān)鍵詞:用戶、行為、關(guān)聯(lián)關(guān)系。
衍生出如下幾個問題
關(guān)于用戶- 用戶是怎么分類的(用戶角色)
- 用戶和用戶之間是否有關(guān)系?如果有,是什么關(guān)系?關(guān)系是什么結(jié)構(gòu)的?
- 如公司組織架構(gòu)那種層級分明的樹形結(jié)構(gòu)
關(guān)于行為- 怎么將行為分類(一般來說按照行為目的區(qū)分、按照行為業(yè)務(wù)類別區(qū)分、按照行為與系統(tǒng)的交互類型區(qū)分)
- 例如,按照行為與系統(tǒng)的交互類型區(qū)分
- 數(shù)據(jù)權(quán)限:指的是用戶有權(quán)操作的那部分數(shù)據(jù)(讀、寫)
- 功能權(quán)限:對使用人群在功能修改使用等方面權(quán)利的限制
- 行為之間是否有層級和依賴關(guān)系,是怎么樣的依賴關(guān)系
關(guān)于關(guān)聯(lián)關(guān)系- 是一對一還是一對多,如果有父子層級之分,是繼承關(guān)系還是獨立存在。
這是概念層的問題,具體到工作的設(shè)計當中,用于梳理需求會有一些幫助,主要還是用于梳理基礎(chǔ)概念。
一句話概括就是:權(quán)限系統(tǒng)維護的是人和可進行行為的關(guān)聯(lián)關(guān)系。那么系統(tǒng)的每個用戶可以看做是一堆可以進行的行為的集合。
這句話有點不好理解的話,你就按照用戶畫像那么理解,在權(quán)限系統(tǒng)里,每個用戶身上打滿了一堆可以進行行為的標簽。
那么權(quán)限控制系統(tǒng)的原理呢?其實很簡單,就是:
用戶在訪問時,通過了解用戶具有的可以進行的行為的集合,決定用戶可以看到什么菜單,以及在什么菜單下能使用什么功能,并且具備什么樣操作數(shù)據(jù)的能力。了解完概念,那么在動手之前,是了解清楚需求及目前的解決方案。比如:現(xiàn)在都有什么類型的用戶?每個類型的用戶在使用功能上有什么區(qū)分?現(xiàn)在一級菜單和二級菜單都有哪些?每個頁面上面通用的和需要控制的功能都有什么?哪些數(shù)據(jù)的讀寫需要根據(jù)用戶身份做區(qū)分?PS:大部分沒有權(quán)限控制之前,很多權(quán)限控制是寫死在代碼里了,需要梳理清楚,避免踩坑。
好了,其實回答完以上問題,應(yīng)該能了解自己或公司對權(quán)限系統(tǒng)的基本需求了,按照我的習慣,就可以著手開始寫use case了。
具體的情況,具體分析,最大的難點在于對現(xiàn)有情況的了解,了解清楚現(xiàn)有情況,其實設(shè)計難度不大。
更多閱讀:RBAC權(quán)限管理
關(guān)鍵詞:權(quán)限,系統(tǒng),設(shè)計