許可權管理需求分析
1、 一個使用者(User)屬於一個使用者組(user group),一個使用者組擁有多個使用者。
2、 一個使用者組(user group)只有一個管理員(Admin),並且只能對本使用者組進行操作。
3、 系統擁有一個超級管理員(super Admin),並且能夠對整個系統有全權。
4、 每個使用者組的管理員都有新增使用者,授予使用者許可權的能力。
5、 每個使用者組的管理員都具有建立角色的能力,並且自己管理這自己的角色。
6、 使用者(User)可以擁有多個角色(Role),角色可以被分配給多個使用者
7、 許可權的意思就是對某個資源的某個操作,現在規定:
a)
b) 所謂操作,包括:增加、刪除、修改、查詢等操作
8、 許可權管理系統的總體功能分為:授權與認證
9、 授權,指將許可權授予角色或使用者
a) 如果使用者A擁有角色B、角色C,那麼,預設的情況下,使用者A將擁有被分配給角色A和角色C的所有許可權(即預設情況下,使用者A繼承其擁有的角色所具有的所有許可權)
b) 如果使用者擁有多個角色,那麼使用者的許可權是這些角色許可權的合集
c) 除了可以對角色進行授權外,也可以針對使用者進行授權,也就是說,將許可權授予使用者。針對某個資源的所有操作,我們可以設定這些許可權對使用者來說是“繼承”或“不繼承”
i. 繼承:意思是這些許可權將使用其(即使用者)所擁有的角色的許可權,而不使用其(即使用者)單獨設定的許可權
ii. 不繼承:意思是這些許可權將使用其單獨設定的許可權,而不使用其所擁有的角色的許可權
10、 認證,指使用者訪問資源的某些操作時,根據授權,判斷是否允許使用者的訪問
a) 在使用者訪問的時候,需要進行即時的判斷(是否有權訪問)
b) 應該提供查詢的功能,可以查詢某個使用者所擁有的所有許可權
11、 總體上,可分為模組管理、角色管理,使用者組管理和使用者管理模組:
模組管理:
模組管理主介面參考:
因為模組是一個樹狀結構(本系統只支援兩級模組的結構),我們可以點選其中一個模組以便開啟其子模組來維護,比如點選“信件交流”:
可以在這個介面上新增模組資訊以及刪除模組資訊
角色管理:
可以新增角色資訊、刪除角色資訊以及給角色授權
給角色授權,選中其中一個角色,可以開啟角色授權介面:
在這個介面上,按照兩級模組的形式列出系統所有模組,以及在這些模組上面的CRUD(新增、讀取、更新、刪除)許可權;所謂“啟用”,意思是本設定有效,否則設定無效!
當點選選中其中某個模組的某個許可權時,系統自動新增此許可權!【選中就開始生效,無需點選提交按鈕】
使用者組管理:
與角色管理流程基本相似,只不過,使用者組所具有的許可權是其使用者組下的使用者基本的許可權,而角色所具有的許可權是其使用者組下的使用者附加的許可權。
使用者管理:
因為使用者實際上就是系統人員的帳號,而且每個人只能擁有一個帳號,所以使用者管理主介面,實際上就是系統所有人員的列表!
【分配帳號】 - 給人員分配帳號,如果已經有帳號,則提示無法繼續分配帳號,如果想修改帳號的話,需要先刪除帳號,再重新分配
【刪除帳號】- 提示是否刪除,如果確定,再發出刪除請求,在刪除成功之後,重新整理介面。
【分配角色】- 給使用者分配角色,一個使用者可以擁有多個角色,點選“分配角色”:
在分配角色的介面上,點選“給使用者分配角色”,可以選擇需要分配的角色,同時可以輸入其優先順序:
點選“分配角色”按鈕,提交資料,這時候,所選擇的角色,就會被賦予相應的使用者:
如果想要修改某個角色的優先順序,可以選擇重新分配一次這個角色,同時給它指定另外一個優先順序即可:
注意:使用者所擁有的角色列表,是按照優先順序大小倒序排列的,即優先順序最高的排前面。
【使用者授權】- 給使用者單獨授權
在主介面上點選“使用者授權”,開啟的授權介面跟角色授權類似:
但是,使用者授權多了一個“不繼承”選擇框,只有在選擇了這個框的前提下,給使用者的單獨授權設定才是有效的,否則它將使用其擁有的角色的許可權!
除此之外附加一個,所屬使用者組連線,給使用者指定其使用者組,那麼他就具備了其使用者組下的所有許可權。