昆明市第三中學 張順攀
用戶權限管理是辦公系統中最重要的組成部分,設計一個良好的權限管理體系,可以整合許多零散應用系統的授權問題,節約大量人力物力,本文主要對辦公系統中的權限管理方式進行分析,實現權限動態管理,在實踐中取得了良好的效果。
辦公自動化(Office Automation,OA)是將辦公和計算機網絡功能結合起來的一種新型的辦公方式,是當前新技術革命中一個技術應用領域,屬于信息化社會的產物。目前大部分公司、企事業單位都會使用很多辦公系統,這些系統有些是上級統一配置的,有些是單位自己購買的,還有些是單位自主開發的。就我校而言,每個部門都在使用著很多系統,例如上級統一配置的有:學校辦公室使用的事業單位OA系統、人事管理系統、工資管理系統;教務處使用的中高考報名系統、學業水平考試管理系統;總務處使用的財務管理系統、固定資產管理系統等。學校自行購買的有一卡通管理系統、圖書管理系統,學生學籍成績管理系統、校園只能廣播系統、選課系統、閱卷系統、課堂評價系統等。除此之外,學校還自主開發了校園網站、小升初網絡報名系統、初高中入學管理系統、報刊訂閱系統、教師網絡辦公系統、投票系統等。系統繁多且操作復雜,相關人員還需要記憶若干個系統的用戶名密碼,給工作人員帶來了眾多不便,并且若每個應用系統都重新對系統的權限進行設計,以滿足不同系統用戶的需求,也將會浪費開發者不少時間,所以花時間來設計一個相對通用的權限系統是很有意義的。
作為一名專業技術人員,筆者一直想嘗試將學校自主開發的所有系統整合,讓相關人員使用同一套用戶名密碼解決所有登錄問題,這就需要用統一的權限系統進行管理,本系統的設計目標是對應用系統的所有功能進行權限控制,比如應用系統的功能菜單、各個界面的按鈕控件等進行權限的操控。
利用用戶,角色,部門,權限的相互組合,形成一個強大的權限管理系統。其具體方案如下:
包括權限表、用戶表、角色表、部門表(部門表可依據實際應用環境更名或者刪除)
權限表:權限主要是指系統的功能權限,負責存儲系統中所有功能模塊的路徑,調用方法(包括POST和GET)及增、刪、改、查操作,通過權限控制用戶是否具有該功能的操作權限。
用戶表:用戶表僅僅是純粹的用戶信息,含用戶名、密碼、姓名、電話、EMAIL等基本信息權限。
角色表:負責存儲角色ID、角色名稱、創建時間等基本信息。
部門表:存儲部門ID、部門名稱、職責、部門負責人等信息。
(1)用戶的權限通過角色來控制,一個角色擁有多個功能權限。
(2)一個用戶可以擁有若干個角色,用戶通過角色獲取功能權限。
(3)一個部門可以擁有若干個角色,部門通過角色獲取功能權限。
(4)一個用戶可以屬于若干部門,用戶可以通過部門獲取角色,進而得到功能權限。

圖1 創建相互關系
(5)特殊權限:用戶可以跳過角色直接獲取或被禁止訪問功能權限,一個用戶可以擁有若干特殊權限。若用戶擁有特殊權限,則特殊權限有最高優先級,如一個用戶U通過角色R得到功能權限A的訪問權,但該用戶U的特殊權限表明U禁止訪問功能權限A,則U將無法得到功能權限A的訪問權。
注:若系統不需要部門表,只需要將部門表及其相互關系刪除即可,不會影響到其他表。
用戶權限系統的核心由以下三部分構成:創造權限、分配權限和使用權限。如圖2所示。

圖2 創建權限信息
(1)創建權限信息,指定系統模塊具有哪些權限。
(2)由系統管理員創建用戶和角色,并指定用戶角色和角色權限的關聯關系。同時由系統管理員創建部門,并指定用戶和部門,部門和角色權限的關聯關系。如圖3所示。

圖3 系統管理員創建用戶和角色
(3)用戶使用分配給的權限去使用各個系統模塊,獲得用戶對模塊的使用權限。如圖4所示。

圖4 用戶權限
如果沒有登錄直接跳轉到錯誤頁。
(1)查詢功能權限
獲取當前請求地址和請求方法對應的權限,如果沒有當前地址對應的權限,直接跳到錯誤頁,如果有則進入下一步。
(2)校驗用戶特殊權限
查看當前用戶有是否和當前權限關聯,如果有關聯則進一步獲取訪問類型,若是允許,則直接允許請求,若為禁止訪問,則直接跳到錯誤頁;若該用戶沒有關聯特殊權限,則進入下一步。
(3)通過用戶角色校驗權限
首先獲取該用戶的所有角色,再得到每個角色的所有權限,將所有角色權限合并到一個集合,再判斷當前的功能權限是否在集合中,若存在,則直接允許請求,否則進入下一步。
(4)通過用戶部門校驗權限
首先獲取該用戶的所有部門,再通過部門獲取角色,進而得到每個角色的所有權限,將所有角色權限合并到一個集合,再判斷當前的功能權限是否在集合中,若存在,則直接允許請求,否則跳到錯誤頁。
小結:以上功能已經在我校的OA系統中實踐過,在實際應用中體現出了良好的易用性和可操作性。此外該權限系統也有可擴展的部分,如用戶的菜單權限也可以直接整合到權限表中,只需要在權限表里增加一個字段,判斷該權限是否是菜單權,用戶登錄時前臺菜單顯示根據角色所擁有的菜單權限所決定,不同的用戶在前端顯示的操作菜單是不一樣的,其菜單權限的操作流程和審核流程與功能權限的流程基本一致。