專利名稱:一種基于用戶權(quán)限構(gòu)建樹形菜單的方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明屬于多媒體技術(shù)領(lǐng)域,尤其涉及一種基于用戶權(quán)限構(gòu)建樹形菜單的方法及
直O(jiān)
背景技術(shù):
目前,在一般頁面中,采用樹形菜單來實現(xiàn)頁面的導(dǎo)航。樹形菜單可以使頁面中的多級菜單更有層次,主要是采用在主菜單下設(shè)置子菜單的方式來體現(xiàn)菜單之間的層次, 這就形成了二級、三級菜單?,F(xiàn)有技術(shù)中,用戶在通過樹形菜單導(dǎo)航進(jìn)行頁面訪問時,所有用戶得到的都是相同的具有所有模塊或功能的菜單,而不能根據(jù)不同權(quán)限的用戶而顯示其具有操作權(quán)限的相應(yīng)模塊或功能的菜單,從而增加了菜單界面的復(fù)雜性和用戶操作的繁瑣性,給用戶的菜單操作造成誤導(dǎo)和混淆,并不利于菜單信息的保密。
發(fā)明內(nèi)容
本發(fā)明提供了一種基于用戶權(quán)限構(gòu)建樹形菜單的方法及裝置,旨在解決現(xiàn)有技術(shù)中由于樹形菜單無法根據(jù)不同權(quán)限的用戶顯示相應(yīng)模塊或功能的菜單而影響用戶操作的問題。本發(fā)明是這樣實現(xiàn)的,一種基于用戶權(quán)限構(gòu)建樹形菜單的方法,包括步驟a 根據(jù)用戶的操作權(quán)限為樹形菜單中的每一個子節(jié)點(diǎn)分配對應(yīng)的權(quán)限值;步驟b 當(dāng)用戶訪問菜單時,根據(jù)用戶與節(jié)點(diǎn)對應(yīng)的權(quán)限值逐一判斷用戶是否具有節(jié)點(diǎn)的操作權(quán)限,如果沒有操作權(quán)限,不添加該節(jié)點(diǎn),并重新判斷下一個節(jié)點(diǎn);如果具有操作權(quán)限,執(zhí)行步驟C;步驟c 將該節(jié)點(diǎn)添加到樹形菜單;步驟d 根據(jù)用戶的操作權(quán)限顯示相應(yīng)的樹形菜單。本發(fā)明的技術(shù)方案還包括所述步驟a還包括在樹形菜單的每一級節(jié)點(diǎn)都分配一個用戶權(quán)限位,通過用戶權(quán)限位分配用戶與該級節(jié)點(diǎn)中每一個子節(jié)點(diǎn)對應(yīng)的權(quán)限值。本發(fā)明的技術(shù)方案還包括所述步驟a還包括設(shè)置樹形菜單的相關(guān)信息,并建立數(shù)據(jù)庫表,將用戶與樹形菜單的權(quán)限對應(yīng)關(guān)系存入數(shù)據(jù)庫表中。本發(fā)明的技術(shù)方案還包括所述步驟b還進(jìn)一步包括通過用戶ID在數(shù)據(jù)庫表中逐一讀取與該用戶對應(yīng)的一級節(jié)點(diǎn)的權(quán)限字符串,根據(jù)菜單項ID按照一級節(jié)點(diǎn)的排列序號逐一讀取一級節(jié)點(diǎn),并逐一讀取每一個一級節(jié)點(diǎn)在該級節(jié)點(diǎn)的權(quán)限字符串中對應(yīng)的權(quán)限值。本發(fā)明的技術(shù)方案還包括所述步驟b還進(jìn)一步包括在數(shù)據(jù)庫表中逐一讀取與用戶對應(yīng)的一級節(jié)點(diǎn)下各級子節(jié)點(diǎn)的權(quán)限字符串,根據(jù)菜單項ID按照子節(jié)點(diǎn)的排列序號逐一讀取各級子節(jié)點(diǎn)中的每一個子節(jié)點(diǎn),并逐一讀取每一個子節(jié)點(diǎn)在該級節(jié)點(diǎn)的權(quán)限字符串中對應(yīng)的權(quán)限值。本發(fā)明的技術(shù)方案還包括所述步驟c還進(jìn)一步包括將各個子節(jié)點(diǎn)添加到樹形菜單中對應(yīng)的父節(jié)點(diǎn)下,并逐一判斷每一個子節(jié)點(diǎn)下是否存在下一級子節(jié)點(diǎn),如果存在下一級子節(jié)點(diǎn),重新讀取下一級子節(jié)點(diǎn)的權(quán)限字符串;如果不存在下一級子節(jié)點(diǎn),判斷所有一級節(jié)點(diǎn)是否讀取完畢,如果沒有讀取完畢,重新讀取下一個一級節(jié)點(diǎn);如果讀取完畢,執(zhí)行步驟d。本發(fā)明的另一技術(shù)方案一種基于用戶權(quán)限構(gòu)建樹形菜單的裝置,包括權(quán)限設(shè)置模塊、權(quán)限判斷模塊、菜單添加模塊和菜單顯示模塊,所述權(quán)限設(shè)置模塊用于根據(jù)用戶的操作權(quán)限為樹形菜單中的每一個子節(jié)點(diǎn)分配對應(yīng)的權(quán)限值,所述權(quán)限判斷模塊用于當(dāng)用戶訪問菜單時根據(jù)用戶與節(jié)點(diǎn)對應(yīng)的權(quán)限值判斷用戶是否具有該節(jié)點(diǎn)的操作權(quán)限,如果沒有操作權(quán)限,不添加該節(jié)點(diǎn),并重新判斷下一個節(jié)點(diǎn);如果具有操作權(quán)限,通過菜單添加模塊添加節(jié)點(diǎn);所述菜單添加模塊用于將用戶具有操作權(quán)限的節(jié)點(diǎn)添加到樹形菜單;所述菜單顯示模塊用于根據(jù)用戶操作權(quán)限顯示相應(yīng)的樹形菜單。本發(fā)明的技術(shù)方案還包括還包括權(quán)限位分配模塊、菜單設(shè)置模塊和數(shù)據(jù)庫存儲模塊,所述權(quán)限位分配模塊用于在樹形菜單的每一級子節(jié)點(diǎn)都分配一個用戶權(quán)限位;所述菜單設(shè)置模塊用于設(shè)置樹形菜單的相關(guān)信息;所述數(shù)據(jù)庫存儲模塊用于建立數(shù)據(jù)庫表存儲用戶與樹形菜單的權(quán)限對應(yīng)關(guān)系;本發(fā)明的技術(shù)方案還包括還包括權(quán)限讀取模塊和菜單讀取模塊,所述權(quán)限讀取模塊還包括一級權(quán)限讀取單元和子權(quán)限讀取單元,所述一級權(quán)限讀取單元用于在數(shù)據(jù)庫表中逐一讀取與該用戶對應(yīng)的一級節(jié)點(diǎn)的權(quán)限字符串;所述子權(quán)限讀取單元用于在數(shù)據(jù)庫表中逐一讀取與用戶對應(yīng)的一級節(jié)點(diǎn)下各級子節(jié)點(diǎn)的權(quán)限字符串;所述菜單讀取模塊還包括一級節(jié)點(diǎn)讀取單元和子節(jié)點(diǎn)讀取單元,所述一級節(jié)點(diǎn)讀取單元用于逐一讀取一級節(jié)點(diǎn),并逐一讀取一級節(jié)點(diǎn)在該級節(jié)點(diǎn)的權(quán)限字符串中對應(yīng)的權(quán)限值;所述子節(jié)點(diǎn)讀取單元用于逐一讀取該級中的每一個子節(jié)點(diǎn),并逐一讀取每一個子節(jié)點(diǎn)在該級節(jié)點(diǎn)的權(quán)限字符串中對應(yīng)的權(quán)限值。本發(fā)明的技術(shù)方案還包括還包括菜單判斷模塊,所述菜單判斷模塊還包括子節(jié)點(diǎn)判斷單元和一級節(jié)點(diǎn)判斷單元,所述子節(jié)點(diǎn)判斷單元用于判斷該級節(jié)點(diǎn)下是否存在下一級子節(jié)點(diǎn),如果存在下一級子節(jié)點(diǎn),通過子權(quán)限讀取單元讀取下一級子節(jié)點(diǎn)的權(quán)限字符串; 如果不存在下一級子節(jié)點(diǎn),通過一級節(jié)點(diǎn)判斷單元判斷一級節(jié)點(diǎn)是否讀取完畢;所述一級節(jié)點(diǎn)判斷單元用于判斷所有一級節(jié)點(diǎn)是否讀取完畢,如果沒有讀取完畢,通過一級節(jié)點(diǎn)讀取單元讀取下一個一級節(jié)點(diǎn);如果讀取完畢,通過菜單顯示模塊顯示相應(yīng)權(quán)限的菜單。本發(fā)明的技術(shù)方案具有如下優(yōu)點(diǎn)或有益效果本發(fā)明基于用戶權(quán)限構(gòu)建樹形菜單權(quán)限的方法及裝置采用JSP和JavMcript與數(shù)據(jù)庫技術(shù)結(jié)合,根據(jù)用戶不同的操作權(quán)限對樹形菜單的每一個節(jié)點(diǎn)設(shè)置權(quán)限值,訪問頁面時根據(jù)用戶的權(quán)限值讀取相應(yīng)菜單,實現(xiàn)動態(tài)地顯示不同權(quán)限的功能樹形菜單,優(yōu)化了目前的菜單操作,并且能夠使用戶從整體上把握權(quán)限范圍內(nèi)的系統(tǒng)信息架構(gòu),提高了用戶對權(quán)限范圍內(nèi)的菜單和功能操作的簡便性和清晰度。為用戶提供簡潔、清晰的系統(tǒng)操作,同時提高系統(tǒng)的保密性。
附圖1是本發(fā)明第一實施例的基于用戶權(quán)限構(gòu)建樹形菜單的方法的流程圖;附圖2是本發(fā)明第二實施例的基于用戶權(quán)限構(gòu)建樹形菜單的方法的流程附圖3是本發(fā)明第一實施例的基于用戶權(quán)限構(gòu)建樹形菜單的裝置的結(jié)構(gòu)示意圖;附圖4是本發(fā)明第二實施例的基于用戶權(quán)限構(gòu)建樹形菜單的裝置的結(jié)構(gòu)示意圖。
具體實施例方式為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實施例,對本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。請參閱圖1,是本發(fā)明第一實施例的基于用戶權(quán)限構(gòu)建樹形菜單的方法的流程圖。 本發(fā)明第一實施例的基于用戶權(quán)限構(gòu)建樹形菜單的方法包括以下步驟步驟100 根據(jù)用戶的操作權(quán)限為樹形菜單中的每一個子節(jié)點(diǎn)分配對應(yīng)的權(quán)限值;在步驟100中,權(quán)限值的具體分配方法為將樹形菜單某一等級中所有的子節(jié)點(diǎn)按排列序號進(jìn)行排序,再根據(jù)用戶權(quán)限在權(quán)限字符串對應(yīng)的位中配置各個子節(jié)點(diǎn)對應(yīng)的權(quán)限值,第一個子節(jié)點(diǎn)對應(yīng)權(quán)限字符串的第一位,第二個子節(jié)點(diǎn)對應(yīng)權(quán)限字符串的第二
位......以此類推至該等級中所有的子節(jié)點(diǎn)與權(quán)限字符串的每一位對應(yīng),例如,如果用戶
具有該等級節(jié)點(diǎn)中第N個子節(jié)點(diǎn)的權(quán)限,則該級節(jié)點(diǎn)的權(quán)限字符串第N位的權(quán)限值就分配為“ 1”,如果用戶不具有該等級中第N個子節(jié)點(diǎn)的權(quán)限,則該級節(jié)點(diǎn)的權(quán)限字符串第N位的權(quán)限值就分配為“0”。步驟110 當(dāng)用戶訪問菜單時,根據(jù)用戶與節(jié)點(diǎn)對應(yīng)的權(quán)限值逐一判斷用戶是否具有節(jié)點(diǎn)的操作權(quán)限,如果沒有操作權(quán)限,執(zhí)行步驟120 ;如果具有操作權(quán)限,執(zhí)行步驟 130 ;在步驟110中,先按照一級節(jié)點(diǎn)的排列序號讀出第一個一級節(jié)點(diǎn),如果第一個一級節(jié)點(diǎn)在權(quán)限字符串中對應(yīng)的權(quán)限值為0,表示該用戶不具有第一個一級節(jié)點(diǎn)的操作權(quán)限, 則根據(jù)菜單項ID繼續(xù)讀取第二個一級節(jié)點(diǎn);如果第一個一級節(jié)點(diǎn)在權(quán)限字符串中對應(yīng)的權(quán)限值為1,表示該用戶具有第一個一級節(jié)點(diǎn)的操作權(quán)限,則根據(jù)菜單項ID繼續(xù)讀取第一
個一級節(jié)點(diǎn)下的二級節(jié)點(diǎn)、第一個一級節(jié)點(diǎn)下的二級節(jié)點(diǎn)下的三級節(jié)點(diǎn).......,依此類
推,繼續(xù)讀出第二個一級節(jié)點(diǎn)、第二個一級節(jié)點(diǎn)下的二級節(jié)點(diǎn)、第二個一級節(jié)點(diǎn)下的二級節(jié)點(diǎn)下的三級節(jié)點(diǎn).....,如此循環(huán)直至所有節(jié)點(diǎn)讀取完畢;其中,本發(fā)明使用JSP實現(xiàn)用戶操作權(quán)限的判斷。步驟120 不添加該節(jié)點(diǎn),并重新執(zhí)行步驟110判斷下一個節(jié)點(diǎn);步驟130 將該節(jié)點(diǎn)添加到樹形菜單;在步驟130中,本發(fā)明使用JavMcript實現(xiàn)樹形菜單的添加;假設(shè)把需要顯示的菜單項添加到樹形菜單上的方法為addTreeNode(parentNode,node),接口定義為第一個節(jié)點(diǎn)參數(shù)不為空,則把節(jié)點(diǎn)加入到該節(jié)點(diǎn)下面,成為其子節(jié)點(diǎn);若第一個節(jié)點(diǎn)參數(shù)為空,則把該節(jié)點(diǎn)列為一級菜單;創(chuàng)建節(jié)點(diǎn)的接口為n0de(iC0n,teXt,Url),其中icon表示該節(jié)點(diǎn)要顯示的圖標(biāo),text表示該節(jié)點(diǎn)要顯示的文字,url表示該節(jié)點(diǎn)要連接到的網(wǎng)頁地址。步驟140 根據(jù)用戶的操作權(quán)限顯示相應(yīng)的功能樹形菜單。請參閱圖2,是本發(fā)明第二實施例的基于用戶權(quán)限構(gòu)建樹形菜單的方法的流程圖。 本發(fā)明第二實施例的基于用戶權(quán)限構(gòu)建樹形菜單的方法包括以下步驟
步驟200 在樹形菜單的每一級節(jié)點(diǎn)都分配一個用戶權(quán)限位;在步驟200中,用戶權(quán)限位用于分配用戶在該等級節(jié)點(diǎn)的操作權(quán)限對應(yīng)的權(quán)限字符串,權(quán)限字符串的位數(shù)與該級節(jié)點(diǎn)下子節(jié)點(diǎn)的個數(shù)相對應(yīng);權(quán)限字符串由權(quán)限值0、1組成,在本發(fā)明實施方式中,權(quán)限值0表示不具有操作權(quán)限,權(quán)限值1表示具有操作權(quán)限。步驟210 根據(jù)用戶的操作權(quán)限在每一級節(jié)點(diǎn)的用戶權(quán)限位分配該級節(jié)點(diǎn)中每一個子節(jié)點(diǎn)對應(yīng)的權(quán)限值;在步驟210中,權(quán)限值的具體分配方法為將樹形菜單某一等級中所有的子節(jié)點(diǎn)按排列序號進(jìn)行排序,再根據(jù)用戶權(quán)限在權(quán)限字符串對應(yīng)的位中配置各個子節(jié)點(diǎn)對應(yīng)的權(quán)限值,第一個子節(jié)點(diǎn)對應(yīng)權(quán)限字符串的第一位,第二個子節(jié)點(diǎn)對應(yīng)權(quán)限字符串的第二
位......以此類推至該等級中所有的子節(jié)點(diǎn)與權(quán)限字符串的每一位對應(yīng),例如,如果用戶
具有該等級節(jié)點(diǎn)中第N個子節(jié)點(diǎn)的權(quán)限,則該級節(jié)點(diǎn)的權(quán)限字符串第N位的權(quán)限值就分配為“ 1”,如果用戶不具有該等級中第N個子節(jié)點(diǎn)的權(quán)限,則該級節(jié)點(diǎn)的權(quán)限字符串第N位的權(quán)限值就分配為“0”。步驟220 設(shè)置樹形菜單的相關(guān)信息;在步驟220中,樹形菜單的具體信息包括菜單項ID、菜單項名稱、當(dāng)前菜單項所在的等級(LEAVE)、當(dāng)前菜單項在所在等級中的排列序號(SERIAL_N0)、每個子節(jié)點(diǎn)在所在等級的權(quán)限字符串中對應(yīng)的權(quán)限值(P0WER_ID)、點(diǎn)擊每個子節(jié)點(diǎn)時顯示的功能網(wǎng)頁的地址、每個子節(jié)點(diǎn)對應(yīng)的父節(jié)點(diǎn)的ID以及子節(jié)點(diǎn)菜單項下是否有子節(jié)點(diǎn),有子節(jié)點(diǎn)時,參數(shù)值為1,沒有子節(jié)點(diǎn)時,參數(shù)值為0,參數(shù)值的作用在于在添加樹形菜單時,如果節(jié)點(diǎn)的參數(shù)值為1,則在該節(jié)點(diǎn)下添加子節(jié)點(diǎn);如果節(jié)點(diǎn)的參數(shù)為0,則把該節(jié)點(diǎn)列為一級菜單;其中,菜單項可根據(jù)排列序號的大小調(diào)整顯示功能排列的順序。步驟230 建立數(shù)據(jù)庫表,將用戶與樹形菜單的權(quán)限對應(yīng)關(guān)系存入數(shù)據(jù)庫表中;在步驟230中,具體關(guān)系內(nèi)容包括用戶ID(USER_ID)、樹形菜單(USER_TREE)的級數(shù)及用戶與樹形菜單每一級節(jié)點(diǎn)對應(yīng)的權(quán)限字符串(AUTH_MARK)。步驟MO 當(dāng)用戶訪問菜單時,通過用戶ID在數(shù)據(jù)庫表中逐一讀取與該用戶對應(yīng)的一級節(jié)點(diǎn)的權(quán)限字符串;步驟250 根據(jù)菜單項ID按照一級節(jié)點(diǎn)的排列序號逐一讀取一級節(jié)點(diǎn),并根據(jù)節(jié)點(diǎn)與權(quán)限字符串的對應(yīng)關(guān)系讀取該一級節(jié)點(diǎn)在該級節(jié)點(diǎn)的權(quán)限字符串中對應(yīng)的權(quán)限值;步驟沈0 判斷該一級節(jié)點(diǎn)在該級節(jié)點(diǎn)的權(quán)限字符串中對應(yīng)的權(quán)限值是“0”還是 “ 1”,如果該一級節(jié)點(diǎn)在該級節(jié)點(diǎn)的權(quán)限字符串中對應(yīng)的權(quán)限值是“0”,執(zhí)行步驟270 ;如果該一級節(jié)點(diǎn)在該級節(jié)點(diǎn)的權(quán)限字符串中對應(yīng)的權(quán)限值是“1”,執(zhí)行步驟觀0 ;在步驟沈0中,先按照一級節(jié)點(diǎn)的排列序號讀出第一個一級節(jié)點(diǎn),如果第一個一級節(jié)點(diǎn)在權(quán)限字符串中對應(yīng)的權(quán)限值為0,表示該用戶不具有第一個一級節(jié)點(diǎn)的操作權(quán)限, 則根據(jù)菜單項ID繼續(xù)讀取第二個一級節(jié)點(diǎn);如果第一個一級節(jié)點(diǎn)在權(quán)限字符串中對應(yīng)的權(quán)限值為1,表示該用戶具有第一個一級節(jié)點(diǎn)的操作權(quán)限,則根據(jù)菜單項ID繼續(xù)讀取第一
個一級節(jié)點(diǎn)下的二級節(jié)點(diǎn)、第一個一級節(jié)點(diǎn)下的二級節(jié)點(diǎn)下的三級節(jié)點(diǎn).......,依此類
推,繼續(xù)讀出第二個一級節(jié)點(diǎn)、第二個一級節(jié)點(diǎn)下的二級節(jié)點(diǎn)、第二個一級節(jié)點(diǎn)下的二級節(jié)點(diǎn)下的三級節(jié)點(diǎn).....,如此循環(huán)直至所有節(jié)點(diǎn)讀取完畢;其中,本發(fā)明使用JSP實現(xiàn)用戶操作權(quán)限的判斷。
步驟270 不添加該一級節(jié)點(diǎn),并重新執(zhí)行步驟250讀取下一個一級節(jié)點(diǎn);步驟觀0 將該一級節(jié)點(diǎn)添加到樹形菜單;步驟四0 在數(shù)據(jù)庫表中逐一讀取與用戶對應(yīng)的該級節(jié)點(diǎn)下各級子節(jié)點(diǎn)的權(quán)限字符串;步驟300 根據(jù)菜單項ID按照該級子節(jié)點(diǎn)的排列序號逐一讀取該級中的每一個子節(jié)點(diǎn),并根據(jù)節(jié)點(diǎn)與權(quán)限字符串的對應(yīng)關(guān)系逐一讀取每一個子節(jié)點(diǎn)在該級節(jié)點(diǎn)的權(quán)限字符串中對應(yīng)的權(quán)限值;步驟310 逐一判斷每一個子節(jié)點(diǎn)在該級節(jié)點(diǎn)的權(quán)限字符串中對應(yīng)的權(quán)限值是 “0”還是“1”,如果子節(jié)點(diǎn)在該級節(jié)點(diǎn)的權(quán)限字符串中對應(yīng)的權(quán)限值是“0”,執(zhí)行步驟320 ; 如果子節(jié)點(diǎn)在該級節(jié)點(diǎn)的權(quán)限字符串中對應(yīng)的權(quán)限值是“1”,執(zhí)行步驟330 ;步驟320 不添加該子節(jié)點(diǎn),并重新執(zhí)行步驟300讀取該級節(jié)點(diǎn)中的下一個子節(jié)占.
^ \\\ 步驟330 將該子節(jié)點(diǎn)添加到樹形菜單中對應(yīng)的父節(jié)點(diǎn)下,作為其子節(jié)點(diǎn);在步驟330中,本發(fā)明使用JavMcript實現(xiàn)樹形菜單的添加;假設(shè)把需要顯示的菜單項添加到樹形菜單上的方法為addTreeNode(parentNode,node),接口定義為第一個節(jié)點(diǎn)參數(shù)不為空,則把節(jié)點(diǎn)加入到該節(jié)點(diǎn)下面,成為其子節(jié)點(diǎn);若第一個節(jié)點(diǎn)參數(shù)為空,則把該節(jié)點(diǎn)列為一級菜單;創(chuàng)建節(jié)點(diǎn)的接口為n0de(iC0n,teXt,Url),其中icon表示該節(jié)點(diǎn)要顯示的圖標(biāo),text表示該節(jié)點(diǎn)要顯示的文字,url表示該節(jié)點(diǎn)要連接到的網(wǎng)頁地址。步驟340 判斷該子節(jié)點(diǎn)下是否存在下一級子節(jié)點(diǎn),如果存在下一級子節(jié)點(diǎn),重新執(zhí)行步驟290讀取下一級子節(jié)點(diǎn)的權(quán)限字符串;如果不存在下一級子節(jié)點(diǎn),執(zhí)行步驟350 ;步驟350 判斷所有一級節(jié)點(diǎn)是否讀取完畢,如果沒有讀取完畢,重新執(zhí)行步驟 250讀取下一個一級節(jié)點(diǎn);如果讀取完畢,執(zhí)行步驟360 ;步驟360 根據(jù)用戶的操作權(quán)限顯示相應(yīng)的功能樹形菜單;步驟370:結(jié)束。請參與圖3,是本發(fā)明第一實施例的基于用戶權(quán)限構(gòu)建樹形菜單的裝置的結(jié)構(gòu)示意圖。本發(fā)明第一實施例的基于用戶權(quán)限構(gòu)建樹形菜單的裝置包括包括權(quán)限設(shè)置模塊、權(quán)限判斷模塊、菜單添加模塊和菜單顯示模塊,其中,權(quán)限設(shè)置模塊用于根據(jù)用戶的操作權(quán)限為樹形菜單中的每一個子節(jié)點(diǎn)分配對應(yīng)的權(quán)限值;其中,權(quán)限值的具體分配方法為將樹形菜單某一等級中所有的子節(jié)點(diǎn)按排列序號進(jìn)行排序,再根據(jù)用戶權(quán)限在權(quán)限字符串對應(yīng)的權(quán)限位中配置各個子節(jié)點(diǎn)對應(yīng)的權(quán)限值,第一個子節(jié)點(diǎn)對應(yīng)權(quán)限字符串的第一位,第二個子節(jié)點(diǎn)對應(yīng)權(quán)限字符串的第二
位......以此類推至該等級中所有的子節(jié)點(diǎn)與權(quán)限字符串對應(yīng),例如,如果用戶具有該等
級節(jié)點(diǎn)中第N個子節(jié)點(diǎn)的權(quán)限,則該級節(jié)點(diǎn)的權(quán)限字符串第N位的權(quán)限值就分配為“1”,如果用戶不具有該等級中第N個子節(jié)點(diǎn)的權(quán)限,則該級節(jié)點(diǎn)的權(quán)限字符串第N位的權(quán)限值就分配為“0”。權(quán)限判斷模塊用于當(dāng)用戶訪問菜單時根據(jù)用戶與節(jié)點(diǎn)對應(yīng)的權(quán)限值判斷用戶是否具有該節(jié)點(diǎn)的操作權(quán)限,如果沒有操作權(quán)限,不添加該節(jié)點(diǎn),并重新判斷下一個節(jié)點(diǎn);如果具有操作權(quán)限,通過菜單添加模塊添加節(jié)點(diǎn);其中,先按照一級節(jié)點(diǎn)的排列序號讀出第一個一級節(jié)點(diǎn),如果第一個一級節(jié)點(diǎn)在權(quán)限字符串中對應(yīng)的權(quán)限值為0,表示該用戶不具有第一個一級節(jié)點(diǎn)的操作權(quán)限,則根據(jù)菜單項ID繼續(xù)讀取第二個一級節(jié)點(diǎn);如果第一個一級節(jié)點(diǎn)在權(quán)限字符串中對應(yīng)的權(quán)限值為1,表示該用戶具有第一個一級節(jié)點(diǎn)的操作權(quán)限,則根據(jù)菜單項ID繼續(xù)讀取第一個一級節(jié)點(diǎn)下的二級節(jié)點(diǎn)、第一個一級節(jié)點(diǎn)下的二級節(jié)點(diǎn)下的三
級節(jié)點(diǎn).......,依此類推,繼續(xù)讀出第二個一級節(jié)點(diǎn)、第二個一級節(jié)點(diǎn)下的二級節(jié)點(diǎn)、第二
個一級節(jié)點(diǎn)下的二級節(jié)點(diǎn)下的三級節(jié)點(diǎn).....,如此循環(huán)直至所有節(jié)點(diǎn)讀取完畢;其中,本發(fā)明使用JSP實現(xiàn)用戶操作權(quán)限的判斷。菜單添加模塊用于將用戶具有操作權(quán)限的節(jié)點(diǎn)添加到樹形菜單;其中,本發(fā)明使用JavMcript實現(xiàn)樹形菜單的添加;假設(shè)把需要顯示的菜單項添加到樹形菜單上的方法為adcTTreeNodebarentNode,node),接口定義為第一個節(jié)點(diǎn)參數(shù)不為空,則把節(jié)點(diǎn)加入到該節(jié)點(diǎn)下面,成為其子節(jié)點(diǎn);若第一個節(jié)點(diǎn)參數(shù)為空,則把該節(jié)點(diǎn)列為一級菜單;創(chuàng)建節(jié)點(diǎn)的接口為node (icon, text,url),其中icon表示該節(jié)點(diǎn)要顯示的圖標(biāo),text表示該節(jié)點(diǎn)要顯示的文字,url表示該節(jié)點(diǎn)要連接到的網(wǎng)頁地址。菜單顯示模塊用于根據(jù)用戶的操作權(quán)限顯示相應(yīng)的功能樹形菜。請參與圖4,是本發(fā)明第二實施例的基于用戶權(quán)限構(gòu)建樹形菜單的裝置的結(jié)構(gòu)示意圖。本發(fā)明第二實施例的基于用戶權(quán)限構(gòu)建樹形菜單的裝置包括權(quán)限位分配模塊、權(quán)限設(shè)置模塊、菜單設(shè)置模塊、數(shù)據(jù)庫存儲模塊、權(quán)限讀取模塊、菜單讀取模塊、權(quán)限判斷模塊、 菜單添加模塊、菜單判斷模塊和菜單顯示模塊,其中權(quán)限位分配模塊用于在樹形菜單的每一級節(jié)點(diǎn)都分配一個用戶權(quán)限位;其中,用戶權(quán)限位用于分配用戶在該級節(jié)點(diǎn)的操作權(quán)限對應(yīng)的權(quán)限字符串,權(quán)限字符串由權(quán)限值0、 1組成,權(quán)限字符串的位數(shù)與該級節(jié)點(diǎn)下的子節(jié)點(diǎn)的個數(shù)相對應(yīng);在本發(fā)明實施方式中,權(quán)限值0表示不具有操作權(quán)限,權(quán)限值1表示具有操作權(quán)限。權(quán)限設(shè)置模塊用于根據(jù)用戶的操作權(quán)限在每一級節(jié)點(diǎn)的用戶權(quán)限位分配該級節(jié)點(diǎn)中每一個子節(jié)點(diǎn)對應(yīng)的權(quán)限值;其中,權(quán)限值的具體分配方法為將樹形菜單某一等級中所有的子節(jié)點(diǎn)按排列序號進(jìn)行排序,再根據(jù)用戶權(quán)限在權(quán)限字符串對應(yīng)的權(quán)限位中配置各個子節(jié)點(diǎn)對應(yīng)的權(quán)限值,第一個子節(jié)點(diǎn)對應(yīng)權(quán)限字符串的第一位,第二個子節(jié)點(diǎn)對應(yīng)權(quán)
限字符串的第二位......以此類推至該等級中所有的子節(jié)點(diǎn)與權(quán)限字符串對應(yīng),例如,如
果用戶具有該等級節(jié)點(diǎn)中第N個子節(jié)點(diǎn)的權(quán)限,則該級節(jié)點(diǎn)的權(quán)限字符串第N位的權(quán)限值就分配為“ 1”,如果用戶不具有該等級中第N個子節(jié)點(diǎn)的權(quán)限,則該級節(jié)點(diǎn)的權(quán)限字符串第 N位的權(quán)限值就分配為“0”。菜單設(shè)置模塊用于設(shè)置樹形菜單的相關(guān)信息;其中,樹形菜單的具體信息包括 菜單項ID、菜單項名稱、當(dāng)前菜單項所在的等級(LEAVE)、當(dāng)前菜單項在所在等級中的排列序號(SERIAL_N0)、每個子節(jié)點(diǎn)在權(quán)限字符串中對應(yīng)的權(quán)限位(P0WER_ID)、點(diǎn)擊每個子節(jié)點(diǎn)時顯示的功能網(wǎng)頁的地址、每個子節(jié)點(diǎn)對應(yīng)的父節(jié)點(diǎn)的ID以及子節(jié)點(diǎn)菜單項下是否有子節(jié)點(diǎn),有子節(jié)點(diǎn)時,參數(shù)值為1,沒有子節(jié)點(diǎn)時,參數(shù)值為0,參數(shù)值的作用在于在添加樹形菜單時,如果節(jié)點(diǎn)的參數(shù)值為1,則在該節(jié)點(diǎn)下添加子節(jié)點(diǎn);如果節(jié)點(diǎn)的參數(shù)為0,則把該節(jié)點(diǎn)列為一級菜單;菜單項可根據(jù)排列序號的大小調(diào)整顯示功能排列的順序。數(shù)據(jù)庫存儲模塊用于建立數(shù)據(jù)庫表,將用戶與樹形菜單的權(quán)限對應(yīng)關(guān)系存入數(shù)據(jù)庫表中;其中,具體關(guān)系內(nèi)容包括用戶ID(USER_ID)、樹形菜單(USER_TREE)的級數(shù)及用戶與樹形菜單每一級節(jié)點(diǎn)對應(yīng)的權(quán)限字符串(AUTH_MARK)。
權(quán)限讀取模塊還包括一級權(quán)限讀取單元和子權(quán)限讀取單元,其中,一級權(quán)限讀取單元用于在用戶訪問菜單時,通過用戶ID在數(shù)據(jù)庫表中逐一讀取與該用戶對應(yīng)的一級節(jié)點(diǎn)的權(quán)限字符串,并通過菜單讀取模塊讀取權(quán)限字符串對應(yīng)的一級節(jié)占.
I— /、、、 子權(quán)限讀取單元用于在數(shù)據(jù)庫表中逐一讀取與用戶對應(yīng)的一級節(jié)點(diǎn)下各級子節(jié)點(diǎn)的權(quán)限字符串,并通過菜單讀取模塊讀取權(quán)限字符串對應(yīng)的子節(jié)點(diǎn);菜單讀取模塊還包括一級節(jié)點(diǎn)讀取單元和子節(jié)點(diǎn)讀取單元,其中,—級節(jié)點(diǎn)讀取單元用于根據(jù)菜單項ID按照一級節(jié)點(diǎn)的排列序號逐一讀取一級節(jié)點(diǎn),根據(jù)節(jié)點(diǎn)與權(quán)限字符串的對應(yīng)關(guān)系讀取該一級節(jié)點(diǎn)在該級節(jié)點(diǎn)的權(quán)限字符串中對應(yīng)的權(quán)限值,并通過權(quán)限判斷模塊判斷用戶是否具有該節(jié)點(diǎn)的操作權(quán)限;子節(jié)點(diǎn)讀取單元用于根據(jù)菜單項ID按照該級子節(jié)點(diǎn)的排列序號逐一讀取該級中的每一個子節(jié)點(diǎn),根據(jù)節(jié)點(diǎn)與權(quán)限字符串的對應(yīng)關(guān)系逐一讀取每一個子節(jié)點(diǎn)在該級節(jié)點(diǎn)的權(quán)限字符串中對應(yīng)的權(quán)限值,并通過權(quán)限判斷模塊判斷用戶是否具有該子節(jié)點(diǎn)的操作權(quán)限;權(quán)限判斷模塊還包括一級權(quán)限判斷單元和子權(quán)限判斷單元,其中,一級權(quán)限判斷單元用于判斷一級節(jié)點(diǎn)在該級節(jié)點(diǎn)的權(quán)限字符串中對應(yīng)的權(quán)限值是“0”還是“ 1 ”,如果該一級節(jié)點(diǎn)在該級節(jié)點(diǎn)的權(quán)限字符串中對應(yīng)的權(quán)限值是“0”,不添加該一級節(jié)點(diǎn),并通過一級節(jié)點(diǎn)讀取單元讀取下一個一級節(jié)點(diǎn);如果該一級節(jié)點(diǎn)在該級節(jié)點(diǎn)的權(quán)限字符串中對應(yīng)的權(quán)限值是“1”,通過菜單添加模塊將該一級節(jié)點(diǎn)添加到樹形菜單; 其中,先按照一級節(jié)點(diǎn)的排列序號讀出第一個一級節(jié)點(diǎn),如果第一個一級節(jié)點(diǎn)在權(quán)限字符串中對應(yīng)的權(quán)限值為0,表示該用戶不具有第一個一級節(jié)點(diǎn)的操作權(quán)限,則根據(jù)菜單項ID 繼續(xù)讀取第二個一級節(jié)點(diǎn);如果第一個一級節(jié)點(diǎn)在權(quán)限字符串中對應(yīng)的權(quán)限值為1,表示該用戶具有第一個一級節(jié)點(diǎn)的操作權(quán)限,則根據(jù)菜單項ID繼續(xù)讀取第一個一級節(jié)點(diǎn)下的
二級節(jié)點(diǎn)、第一個一級節(jié)點(diǎn)下的二級節(jié)點(diǎn)下的三級節(jié)點(diǎn).......,依此類推,繼續(xù)讀出第
二個一級節(jié)點(diǎn)、第二個一級節(jié)點(diǎn)下的二級節(jié)點(diǎn)、第二個一級節(jié)點(diǎn)下的二級節(jié)點(diǎn)下的三級節(jié)點(diǎn).....,如此循環(huán)直至所有節(jié)點(diǎn)讀取完畢;另外,本發(fā)明使用JSP實現(xiàn)用戶操作權(quán)限的判斷。子權(quán)限判斷單元用于逐一判斷每一個子節(jié)點(diǎn)在該級節(jié)點(diǎn)的權(quán)限字符串中對應(yīng)的權(quán)限值是“0”還是“ 1”,如果子節(jié)點(diǎn)在該級節(jié)點(diǎn)的權(quán)限字符串中對應(yīng)的權(quán)限值是“0”,不添加該子節(jié)點(diǎn),并通過子節(jié)點(diǎn)讀取單元讀取該級節(jié)點(diǎn)中下一個子節(jié)點(diǎn);如果子節(jié)點(diǎn)在該級節(jié)點(diǎn)的權(quán)限字符串中對應(yīng)的權(quán)限值是“ 1 ”,通過菜單添加模塊將該子節(jié)點(diǎn)添加到樹形菜單中對應(yīng)的一級節(jié)點(diǎn)下;菜單添加模塊用于將用戶具有操作權(quán)限的節(jié)點(diǎn)添加到樹形菜單,并將各個子節(jié)點(diǎn)添加到樹形菜單中對應(yīng)的父節(jié)點(diǎn)下,作為其子節(jié)點(diǎn);其中,本發(fā)明使用 JavaScript實現(xiàn)樹形菜單的添加,假設(shè)把需要顯示的菜單項添加到樹形菜單上的方法為 addTreeNode (parentNode, node),接口定義為第一個節(jié)點(diǎn)參數(shù)不為空,則把節(jié)點(diǎn)加入到該節(jié)點(diǎn)下面,成為其子節(jié)點(diǎn);若第一個節(jié)點(diǎn)參數(shù)為空,則把該節(jié)點(diǎn)列為一級菜單;創(chuàng)建節(jié)點(diǎn)的接口為node (icon,text,url),其中icon表示該節(jié)點(diǎn)要顯示的圖標(biāo),text表示該節(jié)點(diǎn)要顯示的文字,url表示該節(jié)點(diǎn)要連接到的網(wǎng)頁地址。
菜單判斷模塊還包括子節(jié)點(diǎn)判斷單元和一級節(jié)點(diǎn)判斷單元,其中,子節(jié)點(diǎn)判斷單元用于判斷該級節(jié)點(diǎn)下是否存在下一級子節(jié)點(diǎn),如果存在下一級子節(jié)點(diǎn),通過子權(quán)限讀取單元讀取下一級子節(jié)點(diǎn)的權(quán)限字符串;如果不存在下一級子節(jié)點(diǎn),通過一級節(jié)點(diǎn)判斷單元判斷一級節(jié)點(diǎn)是否讀取完畢;一級節(jié)點(diǎn)判斷單元用于判斷所有一級節(jié)點(diǎn)是否讀取完畢,如果沒有讀取完畢,通過一級節(jié)點(diǎn)讀取單元讀取下一個一級節(jié)點(diǎn);如果讀取完畢,通過菜單顯示模塊顯示相應(yīng)權(quán)限的菜單;菜單顯示模塊用于根據(jù)用戶的操作權(quán)限顯示相應(yīng)的功能樹形菜單。本發(fā)明基于用戶權(quán)限構(gòu)建樹形菜單權(quán)限的方法及裝置采用JSP和JavMcript與數(shù)據(jù)庫技術(shù)結(jié)合,根據(jù)用戶不同的操作權(quán)限對樹形菜單的每一節(jié)點(diǎn)設(shè)置權(quán)限值,訪問頁面時根據(jù)用戶的權(quán)限值讀取相應(yīng)菜單,實現(xiàn)動態(tài)地顯示不同權(quán)限的功能樹形菜單,優(yōu)化了目前的菜單操作,并且能夠使用戶從整體上把握權(quán)限范圍內(nèi)的系統(tǒng)信息架構(gòu),提高了用戶對權(quán)限范圍內(nèi)的菜單和功能操作的簡便性和清晰度。為用戶提供簡潔、清晰的系統(tǒng)操作,同時提高系統(tǒng)的保密性。以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種基于用戶權(quán)限構(gòu)建樹形菜單的方法,包括步驟a 根據(jù)用戶的操作權(quán)限為樹形菜單中的每一個子節(jié)點(diǎn)分配對應(yīng)的權(quán)限值;步驟b 當(dāng)用戶訪問菜單時,根據(jù)用戶與節(jié)點(diǎn)對應(yīng)的權(quán)限值逐一判斷用戶是否具有節(jié)點(diǎn)的操作權(quán)限,如果沒有操作權(quán)限,不添加該節(jié)點(diǎn),并重新判斷下一個節(jié)點(diǎn);如果具有操作權(quán)限,執(zhí)行步驟C;步驟c 將該節(jié)點(diǎn)添加到樹形菜單;步驟d 根據(jù)用戶的操作權(quán)限顯示相應(yīng)的樹形菜單。
2.根據(jù)權(quán)利要求1所述的基于用戶權(quán)限構(gòu)建樹形菜單的方法,其特征在于,所述步驟a 還包括在樹形菜單的每一級節(jié)點(diǎn)都分配一個用戶權(quán)限位,通過用戶權(quán)限位分配用戶與該級節(jié)點(diǎn)中每一個子節(jié)點(diǎn)對應(yīng)的權(quán)限值。
3.根據(jù)權(quán)利要求1或2所述的基于用戶權(quán)限構(gòu)建樹形菜單的方法,其特征在于,所述步驟a還包括設(shè)置樹形菜單的相關(guān)信息,并建立數(shù)據(jù)庫表,將用戶與樹形菜單的權(quán)限對應(yīng)關(guān)系存入數(shù)據(jù)庫表中。
4.根據(jù)權(quán)利要求3所述的基于用戶權(quán)限構(gòu)建樹形菜單的方法,其特征在于,所述步驟 b還進(jìn)一步包括通過用戶ID在數(shù)據(jù)庫表中逐一讀取與該用戶對應(yīng)的一級節(jié)點(diǎn)的權(quán)限字符串,根據(jù)菜單項ID按照一級節(jié)點(diǎn)的排列序號逐一讀取一級節(jié)點(diǎn),并逐一讀取每一個一級節(jié)點(diǎn)在該級節(jié)點(diǎn)的權(quán)限字符串中對應(yīng)的權(quán)限值。
5.根據(jù)權(quán)利要求4所述的基于用戶權(quán)限構(gòu)建樹形菜單的方法,其特征在于,所述步驟 b還進(jìn)一步包括在數(shù)據(jù)庫表中逐一讀取與用戶對應(yīng)的一級節(jié)點(diǎn)下各級子節(jié)點(diǎn)的權(quán)限字符串,根據(jù)菜單項ID按照子節(jié)點(diǎn)的排列序號逐一讀取各級子節(jié)點(diǎn)中的每一個子節(jié)點(diǎn),并逐一讀取每一個子節(jié)點(diǎn)在該級節(jié)點(diǎn)的權(quán)限字符串中對應(yīng)的權(quán)限值。
6.根據(jù)權(quán)利要求1或2所述的基于用戶權(quán)限構(gòu)建樹形菜單的方法,其特征在于,所述步驟c還進(jìn)一步包括將子節(jié)點(diǎn)添加到樹形菜單中對應(yīng)的父節(jié)點(diǎn)下,并逐一判斷每一個子節(jié)點(diǎn)下是否存在下一級子節(jié)點(diǎn),如果存在下一級子節(jié)點(diǎn),重新讀取下一級子節(jié)點(diǎn)的權(quán)限字符串;如果不存在下一級子節(jié)點(diǎn),判斷所有一級節(jié)點(diǎn)是否讀取完畢,如果沒有讀取完畢,重新讀取下一個一級節(jié)點(diǎn);如果讀取完畢,執(zhí)行步驟d。
7.一種基于用戶權(quán)限構(gòu)建樹形菜單的裝置,其特征在于,包括權(quán)限設(shè)置模塊、權(quán)限判斷模塊、菜單添加模塊和菜單顯示模塊,所述權(quán)限設(shè)置模塊用于根據(jù)用戶的操作權(quán)限為樹形菜單中的每一個子節(jié)點(diǎn)分配對應(yīng)的權(quán)限值,所述權(quán)限判斷模塊用于當(dāng)用戶訪問菜單時根據(jù)用戶與節(jié)點(diǎn)對應(yīng)的權(quán)限值判斷用戶是否具有該節(jié)點(diǎn)的操作權(quán)限,如果沒有操作權(quán)限,不添加該節(jié)點(diǎn),并重新判斷下一個節(jié)點(diǎn);如果具有操作權(quán)限,通過菜單添加模塊添加節(jié)點(diǎn);所述菜單添加模塊用于將用戶具有操作權(quán)限的節(jié)點(diǎn)添加到樹形菜單;所述菜單顯示模塊用于根據(jù)用戶操作權(quán)限顯示相應(yīng)的樹形菜單。
8.根據(jù)權(quán)利要7所述的基于用戶權(quán)限構(gòu)建樹形菜單的裝置,其特征在于,還包括權(quán)限位分配模塊、菜單設(shè)置模塊和數(shù)據(jù)庫存儲模塊,所述權(quán)限位分配模塊用于在樹形菜單的每一級子節(jié)點(diǎn)都分配一個用戶權(quán)限位;所述菜單設(shè)置模塊用于設(shè)置樹形菜單的相關(guān)信息;所述數(shù)據(jù)庫存儲模塊用于建立數(shù)據(jù)庫表存儲用戶與樹形菜單的權(quán)限對應(yīng)關(guān)系。
9.根據(jù)權(quán)利要7或8所述的基于用戶權(quán)限構(gòu)建樹形菜單的裝置,其特征在于,還包括權(quán)限讀取模塊和菜單讀取模塊,所述權(quán)限讀取模塊還包括一級權(quán)限讀取單元和子權(quán)限讀取單元,所述一級權(quán)限讀取單元用于在數(shù)據(jù)庫表中逐一讀取與該用戶對應(yīng)的一級節(jié)點(diǎn)的權(quán)限字符串;所述子權(quán)限讀取單元用于在數(shù)據(jù)庫表中逐一讀取與用戶對應(yīng)的一級節(jié)點(diǎn)下各級子節(jié)點(diǎn)的權(quán)限字符串;所述菜單讀取模塊還包括一級節(jié)點(diǎn)讀取單元和子節(jié)點(diǎn)讀取單元,所述一級節(jié)點(diǎn)讀取單元用于逐一讀取一級節(jié)點(diǎn),并逐一讀取一級節(jié)點(diǎn)在該級節(jié)點(diǎn)的權(quán)限字符串中對應(yīng)的權(quán)限值;所述子節(jié)點(diǎn)讀取單元用于逐一讀取該級中的每一個子節(jié)點(diǎn),并逐一讀取每一個子節(jié)點(diǎn)在該級節(jié)點(diǎn)的權(quán)限字符串中對應(yīng)的權(quán)限值。
10.根據(jù)權(quán)利要9所述的基于用戶權(quán)限構(gòu)建樹形菜單的裝置,其特征在于,還包括菜單判斷模塊,所述菜單判斷模塊還包括子節(jié)點(diǎn)判斷單元和一級節(jié)點(diǎn)判斷單元,所述子節(jié)點(diǎn)判斷單元用于判斷該級節(jié)點(diǎn)下是否存在下一級子節(jié)點(diǎn),如果存在下一級子節(jié)點(diǎn),通過子權(quán)限讀取單元讀取下一級子節(jié)點(diǎn)的權(quán)限字符串;如果不存在下一級子節(jié)點(diǎn),通過一級節(jié)點(diǎn)判斷單元判斷一級節(jié)點(diǎn)是否讀取完畢;所述一級節(jié)點(diǎn)判斷單元用于判斷所有一級節(jié)點(diǎn)是否讀取完畢,如果沒有讀取完畢,通過一級節(jié)點(diǎn)讀取單元讀取下一個一級節(jié)點(diǎn);如果讀取完畢,通過菜單顯示模塊顯示相應(yīng)權(quán)限的菜單。
全文摘要
本發(fā)明屬于多媒體技術(shù)領(lǐng)域,尤其涉及一種基于用戶權(quán)限構(gòu)建樹形菜單的方法及裝置。本發(fā)明基于用戶權(quán)限構(gòu)建樹形菜單的方法包括步驟a根據(jù)用戶的操作權(quán)限為樹形菜單中的每一個子節(jié)點(diǎn)分配對應(yīng)的權(quán)限值;步驟b當(dāng)用戶訪問菜單時,根據(jù)用戶與節(jié)點(diǎn)對應(yīng)的權(quán)限值逐一判斷用戶是否具有節(jié)點(diǎn)的操作權(quán)限,如果沒有操作權(quán)限,不添加該節(jié)點(diǎn),并重新判斷下一個節(jié)點(diǎn);如果具有操作權(quán)限,執(zhí)行步驟c;步驟c將該節(jié)點(diǎn)添加到樹形菜單;步驟d根據(jù)用戶的操作權(quán)限顯示相應(yīng)的功能樹形菜單。通過本發(fā)明的實施可實現(xiàn)動態(tài)地顯示不同權(quán)限的功能樹形菜單,優(yōu)化了目前的菜單操作,為用戶提供簡潔、清晰的系統(tǒng)操作,同時提高系統(tǒng)的保密性。
文檔編號G06F9/44GK102520933SQ20111038483
公開日2012年6月27日 申請日期2011年11月28日 優(yōu)先權(quán)日2011年11月28日
發(fā)明者王倫 申請人:深圳市五巨科技有限公司