簡要介紹一下該權限管理系統的特點,該系統功能上做到了靈活授權,操控細緻,權限可以細到按鈕及超鏈級別,而且部署簡單,下面談談我自己的設計經驗。
該系統主要功能如下:
1、 自定義操作動作(如增加、刪除、修改、審覈等,不再是以前見過的那種粗粒度的
按模塊分配權限,或者稍微先進點的規定死某幾個操作了)。
2、 無限級功能模塊管理,自定義模塊排序,可以更好地對整個系統中所有模塊進行
分類管理。
3、 靈活地爲各模塊分配操作,即每個模塊有哪些操作需要被控制(將步驟1中添加的
操作按需分配給各模塊)。
4、 對所有用戶基礎信息進行管理,實行有效期機制,過期自動失效,在有效期間亦
可強制停止用戶使用。
5、 自定義角色,可以起個聽起來通俗易懂的名字。
6、 任意角色可任意組合系統權限功能點(比如某個模塊裏他只能修改數據而不能添加
或刪除等其它操作)
7、 一個用戶可有多個角色(多身份),一個角色也可以被多個用戶擁有(同身份)(多對
多),靈活授權。
8、 按角色給用戶授權,當授權對象數量龐大的時候就可大顯身手了(比如給公司全體
員工授權)。
9、 按用戶分配角色,當某個用戶以多種身份出現在系統中的時候,希望分配多個角
色。
10、 用戶及角色分級管理,下級用戶只能擁有上級用戶權限的子集,可無限級,
而除了超級管理員外其它用戶都只能看到屬於自己管理範圍內(自己創建的)用戶,也只能分配自己管理範圍內(自己創建)的角色,這樣可以做到各司其職,管理清晰。
從數據庫結構來看,一共設計了七個表(table),表名及功能分別如下:
1、 操作表
用來存放用戶自定義的各種功能操作,比如新增、修改、刪除等,以前見過的設計是將操作直接放在模塊下面管理,這就導致了常見的操作通常要重複添加N次(比如大部分模塊都會有新增修改等操作),如果模塊比較多就顯得非常繁瑣且容易出錯。現在把它放在一個單獨的表裏面進行管理就可以避免這一問題出現,流程也更加清晰。
2、 模塊表
顧名思義就是將系統中的各模塊進行管理,支持無限級模塊
3、 模塊操作關聯表
各模塊有什麼樣的操作就在這裏體現,在模塊與操作之間建立起關聯形成權限點,以便給角色授權。
4、 角色表
對角色基本信息進行管理。用戶可以自定義成各種各樣的角色,比如局長、校長、總經理等。
5、 角色權限表
將角色與系統中的權限點關聯起來,也就是完成授權的動作。
6、 用戶表
將用戶的最基本的信息進行管理(在正常的業務系統中可進行擴展用戶信息),比如姓名、有效期等。
7、 用戶角色表
在用戶與角色之間建立起關聯,給用戶授予哪些角色權限(同一用戶可以有多個角色),也可以按角色添加用戶,比如將“員工”角色授予公司所有人,而不用按用戶一個一個地授權。