昆明市第三中學(xué) 張順攀
用戶權(quán)限管理是辦公系統(tǒng)中最重要的組成部分,設(shè)計(jì)一個(gè)良好的權(quán)限管理體系,可以整合許多零散應(yīng)用系統(tǒng)的授權(quán)問(wèn)題,節(jié)約大量人力物力,本文主要對(duì)辦公系統(tǒng)中的權(quán)限管理方式進(jìn)行分析,實(shí)現(xiàn)權(quán)限動(dòng)態(tài)管理,在實(shí)踐中取得了良好的效果。
辦公自動(dòng)化(Office Automation,OA)是將辦公和計(jì)算機(jī)網(wǎng)絡(luò)功能結(jié)合起來(lái)的一種新型的辦公方式,是當(dāng)前新技術(shù)革命中一個(gè)技術(shù)應(yīng)用領(lǐng)域,屬于信息化社會(huì)的產(chǎn)物。目前大部分公司、企事業(yè)單位都會(huì)使用很多辦公系統(tǒng),這些系統(tǒng)有些是上級(jí)統(tǒng)一配置的,有些是單位自己購(gòu)買的,還有些是單位自主開(kāi)發(fā)的。就我校而言,每個(gè)部門都在使用著很多系統(tǒng),例如上級(jí)統(tǒng)一配置的有:學(xué)校辦公室使用的事業(yè)單位OA系統(tǒng)、人事管理系統(tǒng)、工資管理系統(tǒng);教務(wù)處使用的中高考報(bào)名系統(tǒng)、學(xué)業(yè)水平考試管理系統(tǒng);總務(wù)處使用的財(cái)務(wù)管理系統(tǒng)、固定資產(chǎn)管理系統(tǒng)等。學(xué)校自行購(gòu)買的有一卡通管理系統(tǒng)、圖書(shū)管理系統(tǒng),學(xué)生學(xué)籍成績(jī)管理系統(tǒng)、校園只能廣播系統(tǒng)、選課系統(tǒng)、閱卷系統(tǒng)、課堂評(píng)價(jià)系統(tǒng)等。除此之外,學(xué)校還自主開(kāi)發(fā)了校園網(wǎng)站、小升初網(wǎng)絡(luò)報(bào)名系統(tǒng)、初高中入學(xué)管理系統(tǒng)、報(bào)刊訂閱系統(tǒng)、教師網(wǎng)絡(luò)辦公系統(tǒng)、投票系統(tǒng)等。系統(tǒng)繁多且操作復(fù)雜,相關(guān)人員還需要記憶若干個(gè)系統(tǒng)的用戶名密碼,給工作人員帶來(lái)了眾多不便,并且若每個(gè)應(yīng)用系統(tǒng)都重新對(duì)系統(tǒng)的權(quán)限進(jìn)行設(shè)計(jì),以滿足不同系統(tǒng)用戶的需求,也將會(huì)浪費(fèi)開(kāi)發(fā)者不少時(shí)間,所以花時(shí)間來(lái)設(shè)計(jì)一個(gè)相對(duì)通用的權(quán)限系統(tǒng)是很有意義的。
作為一名專業(yè)技術(shù)人員,筆者一直想嘗試將學(xué)校自主開(kāi)發(fā)的所有系統(tǒng)整合,讓相關(guān)人員使用同一套用戶名密碼解決所有登錄問(wèn)題,這就需要用統(tǒng)一的權(quán)限系統(tǒng)進(jìn)行管理,本系統(tǒng)的設(shè)計(jì)目標(biāo)是對(duì)應(yīng)用系統(tǒng)的所有功能進(jìn)行權(quán)限控制,比如應(yīng)用系統(tǒng)的功能菜單、各個(gè)界面的按鈕控件等進(jìn)行權(quán)限的操控。
利用用戶,角色,部門,權(quán)限的相互組合,形成一個(gè)強(qiáng)大的權(quán)限管理系統(tǒng)。其具體方案如下:
包括權(quán)限表、用戶表、角色表、部門表(部門表可依據(jù)實(shí)際應(yīng)用環(huán)境更名或者刪除)
權(quán)限表:權(quán)限主要是指系統(tǒng)的功能權(quán)限,負(fù)責(zé)存儲(chǔ)系統(tǒng)中所有功能模塊的路徑,調(diào)用方法(包括POST和GET)及增、刪、改、查操作,通過(guò)權(quán)限控制用戶是否具有該功能的操作權(quán)限。
用戶表:用戶表僅僅是純粹的用戶信息,含用戶名、密碼、姓名、電話、EMAIL等基本信息權(quán)限。
角色表:負(fù)責(zé)存儲(chǔ)角色I(xiàn)D、角色名稱、創(chuàng)建時(shí)間等基本信息。
部門表:存儲(chǔ)部門ID、部門名稱、職責(zé)、部門負(fù)責(zé)人等信息。
(1)用戶的權(quán)限通過(guò)角色來(lái)控制,一個(gè)角色擁有多個(gè)功能權(quán)限。
(2)一個(gè)用戶可以擁有若干個(gè)角色,用戶通過(guò)角色獲取功能權(quán)限。
(3)一個(gè)部門可以擁有若干個(gè)角色,部門通過(guò)角色獲取功能權(quán)限。
(4)一個(gè)用戶可以屬于若干部門,用戶可以通過(guò)部門獲取角色,進(jìn)而得到功能權(quán)限。
圖1 創(chuàng)建相互關(guān)系
(5)特殊權(quán)限:用戶可以跳過(guò)角色直接獲取或被禁止訪問(wèn)功能權(quán)限,一個(gè)用戶可以擁有若干特殊權(quán)限。若用戶擁有特殊權(quán)限,則特殊權(quán)限有最高優(yōu)先級(jí),如一個(gè)用戶U通過(guò)角色R得到功能權(quán)限A的訪問(wèn)權(quán),但該用戶U的特殊權(quán)限表明U禁止訪問(wèn)功能權(quán)限A,則U將無(wú)法得到功能權(quán)限A的訪問(wèn)權(quán)。
注:若系統(tǒng)不需要部門表,只需要將部門表及其相互關(guān)系刪除即可,不會(huì)影響到其他表。
用戶權(quán)限系統(tǒng)的核心由以下三部分構(gòu)成:創(chuàng)造權(quán)限、分配權(quán)限和使用權(quán)限。如圖2所示。
圖2 創(chuàng)建權(quán)限信息
(1)創(chuàng)建權(quán)限信息,指定系統(tǒng)模塊具有哪些權(quán)限。
(2)由系統(tǒng)管理員創(chuàng)建用戶和角色,并指定用戶角色和角色權(quán)限的關(guān)聯(lián)關(guān)系。同時(shí)由系統(tǒng)管理員創(chuàng)建部門,并指定用戶和部門,部門和角色權(quán)限的關(guān)聯(lián)關(guān)系。如圖3所示。
圖3 系統(tǒng)管理員創(chuàng)建用戶和角色
(3)用戶使用分配給的權(quán)限去使用各個(gè)系統(tǒng)模塊,獲得用戶對(duì)模塊的使用權(quán)限。如圖4所示。
圖4 用戶權(quán)限
如果沒(méi)有登錄直接跳轉(zhuǎn)到錯(cuò)誤頁(yè)。
(1)查詢功能權(quán)限
獲取當(dāng)前請(qǐng)求地址和請(qǐng)求方法對(duì)應(yīng)的權(quán)限,如果沒(méi)有當(dāng)前地址對(duì)應(yīng)的權(quán)限,直接跳到錯(cuò)誤頁(yè),如果有則進(jìn)入下一步。
(2)校驗(yàn)用戶特殊權(quán)限
查看當(dāng)前用戶有是否和當(dāng)前權(quán)限關(guān)聯(lián),如果有關(guān)聯(lián)則進(jìn)一步獲取訪問(wèn)類型,若是允許,則直接允許請(qǐng)求,若為禁止訪問(wèn),則直接跳到錯(cuò)誤頁(yè);若該用戶沒(méi)有關(guān)聯(lián)特殊權(quán)限,則進(jìn)入下一步。
(3)通過(guò)用戶角色校驗(yàn)權(quán)限
首先獲取該用戶的所有角色,再得到每個(gè)角色的所有權(quán)限,將所有角色權(quán)限合并到一個(gè)集合,再判斷當(dāng)前的功能權(quán)限是否在集合中,若存在,則直接允許請(qǐng)求,否則進(jìn)入下一步。
(4)通過(guò)用戶部門校驗(yàn)權(quán)限
首先獲取該用戶的所有部門,再通過(guò)部門獲取角色,進(jìn)而得到每個(gè)角色的所有權(quán)限,將所有角色權(quán)限合并到一個(gè)集合,再判斷當(dāng)前的功能權(quán)限是否在集合中,若存在,則直接允許請(qǐng)求,否則跳到錯(cuò)誤頁(yè)。
小結(jié):以上功能已經(jīng)在我校的OA系統(tǒng)中實(shí)踐過(guò),在實(shí)際應(yīng)用中體現(xiàn)出了良好的易用性和可操作性。此外該權(quán)限系統(tǒng)也有可擴(kuò)展的部分,如用戶的菜單權(quán)限也可以直接整合到權(quán)限表中,只需要在權(quán)限表里增加一個(gè)字段,判斷該權(quán)限是否是菜單權(quán),用戶登錄時(shí)前臺(tái)菜單顯示根據(jù)角色所擁有的菜單權(quán)限所決定,不同的用戶在前端顯示的操作菜單是不一樣的,其菜單權(quán)限的操作流程和審核流程與功能權(quán)限的流程基本一致。