1. 程式人生 > >然之OA許可權管理思路分析

然之OA許可權管理思路分析

一、許可權相關分析
1.然之OA許可權管理,通過組管理,給組新增新增使用者、應用、新增模組、新增操作。
2.概念解析
(1)使用者(User)可以擁有多個角色(Role),角色可以被分配給多個使用者
(2)許可權的意思就是對某個資源的某個操作,現在規定
a)所謂資源,即系統的模組
b)所謂操作,包括:增加、刪除、修改、查詢等操作
3. 許可權管理系統的總體功能分為:授權與認證
4、授權,指將許可權授予角色或使用者
a) 如果使用者A擁有角色B、角色C,那麼,預設的情況下,使用者A將擁有被分配給角色A和角色C的所有許可權(即預設情況下,使用者A繼承其擁有的角色所具有的所有許可權)
b) 如果使用者擁有多個角色,那麼使用者的許可權是這些角色許可權的合集
c) 如果使用者擁有多個角色,而且角色之間的授權有衝突(比如對同一個資源的同一個操作,一個角色為“允許”,另外一個角色為“不允許”),將以優先級別高的角色為準(所謂優先級別,也就是對於這個使用者所擁有的角色而言,是有順序的,同一個角色在不同的使用者那裡可能擁有不同的優先順序)
5. 認證,指使用者訪問資源的某些操作時,根據授權,判斷是否允許使用者的訪問
a)在使用者訪問的時候,需要進行即時的判斷(是否有權訪問)

二、管理員給使用者分配許可權。
(1)新增分組
這裡寫圖片描述
組的右側對應有 應用、成員、許可權等功能
(2)新增應用
這裡寫圖片描述
選擇左側應用,儲存。
(3)新增成員
這裡寫圖片描述
(4)許可權編輯
這裡寫圖片描述
頁面呈現應用下的所有模組和操作,選擇應用則包含應用下的所有模組和操作。如果不想給全部的許可權,應該從操作選擇。

以上操作涉及3張表:
(a)表1 sys_usergroup 使用者帳號和組對應
這裡寫圖片描述
(b)表2 sys_group 組相關資訊表
這裡寫圖片描述
(c)表3 sys_grouppriv 組許可權表
這裡寫圖片描述
表2的主id對應表1 和表3的欄位group

三、總結與思考
(1)總結
(a)這樣的表沒有主鍵id雖然不知道有什麼缺點,但是看起來確實怪怪的。
(c)如果我設計表3組許可權表,也許會設計欄位為id,group,app,module,method,看起來一目瞭然,
不過相對會產生多條記錄。
(2)還有其它比較好的許可權管理思路嗎?
四,相關連線:
http://blog.csdn.net/u013630349/article/details/51733749