1 需求
1.1 概述
權限系統,就是用於管理用戶對資源的權限的系統.
以下是對權限系統的需求進行整理彙總:
1.2 資源分類
資源分兩類:
功能資源,就是具體的頁面,在開發者看來是url,或mvc中的controller+action;
數據資源,就是頁面中的數據,在開發者看來是主體,或表.
1.3 在功能資源上的權限檢查:
判斷用戶對當前url是否有訪問權限
1.4 在數據資源上的權限檢查:
分兩類權限: 讀/寫
分兩級別資源:
表級別:判斷用戶對當前表是否有讀寫權限;
字段級別:判斷用戶對當前表的哪些字段有讀寫權限.
2 需求分析
2.1 本質問題
其實,權限系統要解決的問題可以用一句話來概括:
什麼人對什麼資源有什麼權限?
嘗試一下簡化問題,在數據權限方面我們轉換一下思維,將讀寫操作也看成是資源;
因此,對數據的讀寫權限管理,可以看成是對數據讀操作/數據寫操作的權限管理,這樣我們就可以用更簡單的一句話來概括問題.
如此,所有的權限管理內容都可以抽象成一個問題:
什麼人對什麼資源有權限?
解決該問題我們需要兩個條件:
用戶條件:解決'什麼人',對應用戶範圍,譬如是擁有某個角色/分組的用戶;
資源條件:解決'什麼資源',對應資源範圍,譬如是一個url,一個表的讀操作等.
世界終於清淨了,沒有各式各樣的概念,沒有紛繁複雜的關係,我們終於迴歸本質.
3 概要設計
3.1 概述
有了本質問題及其解決思路,我們就可以做概要設計了,主要是設計組件以及組件之間的交互機制,關鍵在於我們設計的組件能夠恰當的描述上面的一個問題與兩個條件.