一个简易实用的web权限管理模块的应用与实现
??? 本文介紹一個簡易實用的web權限管理模塊的應用與實現(xiàn)。
??? 先介紹數(shù)據(jù)模型和應用界面,后繼對實現(xiàn)細節(jié)做選擇性闡述。
??? 數(shù)據(jù)表關系如下:
??
?
????? 該圖標明了登陸用戶、角色、部門(機構)、用戶組、角色和模塊功能之間的關系。為方便起見,所有表都只保留必要字段。
????? 在本系統(tǒng)設計中,如下概念有著相對特殊的含義。
????? 一、用戶(user): 系統(tǒng)的使用者。
????? 二、部門(org):體現(xiàn)了用戶的行政關系,
????? 三、組(group) :是某相同職能的用戶的集合,可以和用戶一樣與角色產(chǎn)生關聯(lián)。設置組的目的是為了方便用戶的角色分配,減少用戶與角色的直接對應關系。用戶的角色可以是其 組角色和其直接分配的角色之合集。限于作者的時間和精力,組功能在該系統(tǒng)中沒有具體的實現(xiàn)。
????? 四、角色(role):角色對應著某些功能(function)的集合,被分配一個角色意味著有權執(zhí)行這些功能。角色表中的字段"functions"記錄相關的功能id,id之間用逗號隔開。
????? 五、功能(function):系統(tǒng)的一個或者多個執(zhí)行準入。
????? 那么如何表現(xiàn)“功能”以最終實現(xiàn)控制用戶的每一個細微動作呢?假如不特定于某種架構,可以這么設計該表字段:
Sql代碼 ???? 假定有三個web訪問路徑
? http://127.0.0.1:8080/app/sys/user.jsp?action=index&userid=1203?
??http://127.0.0.1:8080/app/sys/user.yuetong?action=add
??http://127.0.0.1:8080/app/sys/user.yuetong?action=update&userid=1203
???? 這三個訪問點被人為的劃分為兩個功能準入(當然亦可以是一個或者三個),見下圖?????
???
???? 由此可知,“功能”是衡量用戶準入的最小刻度。在用戶訪問某個地址的時候,我們可以通過解析URL對比他擁有的“功能”權限來實現(xiàn)權限管理。
???? 借助于某些架構或者設計思路,可以避免用戶直接訪問JSP頁面,甚至全系統(tǒng)的訪問地址都使用同一后綴,這種情況下可以省去SUFFIX字段?!”鞠到y(tǒng)就是這種情況(JSP頁面置于WEB-INF下,采用struts2架構)。
???? 六、功能模塊樹(function tree):功能的目錄組織,起分類的作用。在為角色設定功能的時候,用戶界面可以利用帶選擇框的js樹。而這顆js樹是后臺的功能樹表以及功能表的聯(lián)合 表現(xiàn)形式。功能模塊樹可以方便的與菜單樹建立映射關系,限于作者的時間和精力,該系統(tǒng)并未實現(xiàn)菜單樹。
????下面從實際應用入手做直觀的介紹:
???? 用超級管理員帳號YT000登陸(該帳號擁有全部的權限,帳號信息應該預先寫入數(shù)據(jù)庫或者以配置文件方式放到類路徑下):
???? 首先是機構管理部分,這里可以編輯某個公司或者單位的組織結構:
????
???然后進入用戶管理部分,會有一個用戶列表:
?? 可以編輯用戶的屬性,設置其所屬機構:
?
?
?? 還可以為用戶設定多個角色:
?? 接著,再看看角色的列表:
?? 可以為角色設定功能。該角色設定樹的生成,在后繼文章中會有介紹。
?
?? 最后,在系統(tǒng)資源部分,可以進行功能模塊樹的編輯(和機構樹的編輯一樣)
?
?? 點擊編輯詳細功能,可以為選中的結點設置具體功能:
?
?
????? 配置妥當以后,當我們以一個普通用戶登錄,執(zhí)行某個操作的時候,如果沒有權限,系統(tǒng)會做出提示。關于用戶的權限驗證,后繼會有介紹。
?
???? 相關闡述請關注后繼文章。
總結
以上是生活随笔為你收集整理的一个简易实用的web权限管理模块的应用与实现的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CGI方式获取RTX中用户的电话和邮箱
- 下一篇: win7 怎么关uac win7如何关闭