一種管理用戶權(quán)限的方法與設(shè)備的制造方法
【專利摘要】本申請(qǐng)的目的是提供一種管理用戶權(quán)限的方法與設(shè)備。與現(xiàn)有技術(shù)相比,本申請(qǐng)首先獲取第一用戶的首次登陸信息,然后基于所述第一用戶的首次登陸信息,獲取并存儲(chǔ)所有權(quán)限受控元素的關(guān)聯(lián)信息,接著根據(jù)所述權(quán)限受控元素的關(guān)聯(lián)信息構(gòu)建第一權(quán)限樹(shù),并基于所述第一權(quán)限樹(shù),獲取所述第一用戶對(duì)第二用戶的授權(quán)信息,而后根據(jù)所述第一用戶對(duì)第二用戶的授權(quán)信息,確定所述第二用戶擁有權(quán)限的所述權(quán)限受控元素的關(guān)聯(lián)信息;本申請(qǐng)通過(guò)低耦合、可擴(kuò)展、高性能的方式實(shí)現(xiàn)用戶權(quán)限管理,從而避免開(kāi)發(fā)人員編寫(xiě)大量邏輯判定代碼進(jìn)行權(quán)限控制。進(jìn)一步地,本申請(qǐng)可以根據(jù)用戶指令,增加或減少所述權(quán)限受控元素,從而增加靈活性和擴(kuò)展性。
【專利說(shuō)明】
_種管理用戶權(quán)限的方法與設(shè)備
技術(shù)領(lǐng)域
[0001]本申請(qǐng)涉及計(jì)算機(jī)領(lǐng)域,尤其涉及一種管理用戶權(quán)限的技術(shù)?!颈尘凹夹g(shù)】
[0002]用戶權(quán)限基本上可以分為兩大類,一類為功能權(quán)限,另一類為數(shù)據(jù)權(quán)限。功能權(quán)限是指用戶是否可以使用某項(xiàng)功能,數(shù)據(jù)權(quán)限是指用戶是否可以訪問(wèn)某項(xiàng)數(shù)據(jù)條目。從技術(shù)角度來(lái)看,功能權(quán)限其實(shí)就是指是否允許用戶訪問(wèn)系統(tǒng)界面上的某個(gè)控件,無(wú)論界面上的功能是以菜單、按鈕還是鏈接等形式展現(xiàn),歸根到底就是一個(gè)顯示組件(component或 widget),其對(duì)應(yīng)著一個(gè)具有唯一性的UUID(Universally Unique Identifier,通用唯一識(shí)別碼)。幾乎在所有的應(yīng)用系統(tǒng)中都會(huì)涉及到頁(yè)面元素權(quán)限的管理,這是個(gè)繞不過(guò)去的功能,但是很多系統(tǒng)都采取了直接寫(xiě)JavaScript代碼或后臺(tái)JSP(Java Server Pages,Java服務(wù)器頁(yè)面)或Java邏輯代碼檢查資源路徑數(shù)據(jù)表匹配等類似硬編碼的方式進(jìn)行權(quán)限管理, 一方面需要手工維護(hù)插入數(shù)據(jù)較麻煩,另一方面也和應(yīng)用較為緊耦合,缺少靈活性和擴(kuò)展性。
【發(fā)明內(nèi)容】
[0003]本申請(qǐng)的一個(gè)目的是提供一種管理用戶權(quán)限的方法與設(shè)備,以解決開(kāi)發(fā)人員需要大量邏輯判定代碼進(jìn)行權(quán)限控制的問(wèn)題。
[0004]根據(jù)本申請(qǐng)的一個(gè)方面,提供了一種管理用戶權(quán)限的方法,其中,該方法包括:
[0005]獲取第一用戶的首次登陸信息,其中,所述第一用戶為系統(tǒng)中權(quán)限級(jí)別最高的用戶;
[0006]基于所述第一用戶的首次登陸信息,獲取并存儲(chǔ)所有權(quán)限受控元素的關(guān)聯(lián)信息, 其中,所述權(quán)限受控元素的關(guān)聯(lián)信息包括所述權(quán)限受控元素的標(biāo)識(shí)信息;
[0007]根據(jù)所述權(quán)限受控元素的關(guān)聯(lián)信息構(gòu)建第一權(quán)限樹(shù);
[0008]基于所述第一權(quán)限樹(shù),獲取所述第一用戶對(duì)第二用戶的授權(quán)信息,其中,所述系統(tǒng)中包括若干個(gè)所述第二用戶;
[0009]根據(jù)所述第一用戶對(duì)第二用戶的授權(quán)信息,確定所述第二用戶擁有權(quán)限的所述權(quán)限受控元素的關(guān)聯(lián)信息。
[0010]根據(jù)本申請(qǐng)的另一個(gè)方面,提供了一種管理用戶權(quán)限的設(shè)備,其中,該設(shè)備包括: [〇〇11]第一裝置,用于獲取第一用戶的首次登陸信息,其中,所述第一用戶為系統(tǒng)中權(quán)限級(jí)別最尚的用戶;
[0012]第二裝置,用于基于所述第一用戶的首次登陸信息,獲取并存儲(chǔ)所有權(quán)限受控元素的關(guān)聯(lián)信息,其中,所述權(quán)限受控元素的關(guān)聯(lián)信息包括所述權(quán)限受控元素的標(biāo)識(shí)信息;
[0013]第三裝置,用于根據(jù)所述權(quán)限受控元素的關(guān)聯(lián)信息構(gòu)建第一權(quán)限樹(shù);
[0014]第四裝置,用于基于所述第一權(quán)限樹(shù),獲取所述第一用戶對(duì)第二用戶的授權(quán)信息, 其中,所述系統(tǒng)中包括若干個(gè)所述第二用戶;
[0015]第五裝置,用于根據(jù)所述第一用戶對(duì)第二用戶的授權(quán)信息,確定所述第二用戶擁有權(quán)限的所述權(quán)限受控元素的關(guān)聯(lián)信息。
[0016]與現(xiàn)有技術(shù)相比,本申請(qǐng)首先獲取第一用戶的首次登陸信息,然后基于所述第一用戶的首次登陸信息,獲取并存儲(chǔ)所有權(quán)限受控元素的關(guān)聯(lián)信息,接著根據(jù)所述權(quán)限受控元素的關(guān)聯(lián)信息構(gòu)建第一權(quán)限樹(shù),并基于所述第一權(quán)限樹(shù),獲取所述第一用戶對(duì)第二用戶的授權(quán)信息,而后根據(jù)所述第一用戶對(duì)第二用戶的授權(quán)信息,確定所述第二用戶擁有權(quán)限的所述權(quán)限受控元素的關(guān)聯(lián)信息;本申請(qǐng)通過(guò)低耦合、可擴(kuò)展、高性能的方式實(shí)現(xiàn)用戶權(quán)限管理,從而避免開(kāi)發(fā)人員編寫(xiě)大量邏輯判定代碼進(jìn)行權(quán)限控制。進(jìn)一步地,本申請(qǐng)可以根據(jù)用戶指令,增加或減少所述權(quán)限受控元素,從而增加靈活性和擴(kuò)展性?!靖綀D說(shuō)明】
[0017]通過(guò)閱讀參照以下附圖所作的對(duì)非限制性實(shí)施例所作的詳細(xì)描述,本申請(qǐng)的其它特征、目的和優(yōu)點(diǎn)將會(huì)變得更明顯:
[0018]圖1示出根據(jù)本申請(qǐng)一個(gè)方面的一種管理用戶權(quán)限的方法流程圖;
[0019]圖2示出根據(jù)本申請(qǐng)一個(gè)實(shí)施例的一種權(quán)限樹(shù)的示意圖;
[0020]圖3示出根據(jù)本申請(qǐng)另一個(gè)方面的一種管理用戶權(quán)限的設(shè)備示意圖。
[0021]附圖中相同或相似的附圖標(biāo)記代表相同或相似的部件。【具體實(shí)施方式】[0022 ]下面結(jié)合附圖對(duì)本申請(qǐng)作進(jìn)一步詳細(xì)描述。
[0023]在本申請(qǐng)一個(gè)典型的配置中,終端、服務(wù)網(wǎng)絡(luò)的設(shè)備和可信方均包括一個(gè)或多個(gè)處理器(CPU)、輸入/輸出接口、網(wǎng)絡(luò)接口和內(nèi)存。
[0024]內(nèi)存可能包括計(jì)算機(jī)可讀介質(zhì)中的非永久性存儲(chǔ)器,隨機(jī)存取存儲(chǔ)器(RAM)和/或非易失性內(nèi)存等形式,如只讀存儲(chǔ)器(ROM)或閃存(flash RAM)。內(nèi)存是計(jì)算機(jī)可讀介質(zhì)的示例。
[0025]計(jì)算機(jī)可讀介質(zhì)包括永久性和非永久性、可移動(dòng)和非可移動(dòng)媒體可以由任何方法或技術(shù)來(lái)實(shí)現(xiàn)信息存儲(chǔ)。信息可以是計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序的模塊或其他數(shù)據(jù)。 計(jì)算機(jī)的存儲(chǔ)介質(zhì)的例子包括,但不限于相變內(nèi)存(PRAM)、靜態(tài)隨機(jī)存取存儲(chǔ)器(SRAM)、動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM)、其他類型的隨機(jī)存取存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)、電可擦除可編程只讀存儲(chǔ)器(EEPR0M)、快閃記憶體或其他內(nèi)存技術(shù)、只讀光盤只讀存儲(chǔ)器(CD-ROM)、 數(shù)字多功能光盤(DVD)或其他光學(xué)存儲(chǔ)、磁盒式磁帶,磁帶磁盤存儲(chǔ)或其他磁性存儲(chǔ)設(shè)備或任何其他非傳輸介質(zhì),可用于存儲(chǔ)可以被計(jì)算設(shè)備訪問(wèn)的信息。按照本文中的界定,計(jì)算機(jī)可讀介質(zhì)不包括非暫存電腦可讀媒體(transitory media),如調(diào)制的數(shù)據(jù)信號(hào)和載波。
[0026]在本申請(qǐng)中,把所有需要控制的權(quán)限(包括功能權(quán)限和數(shù)據(jù)權(quán)限)都看作是一種資源,更具體點(diǎn)說(shuō)就是把所有權(quán)限都以一個(gè)唯一的UUID(Universally Unique Identifier, 通用唯一識(shí)別碼)來(lái)標(biāo)識(shí)和管理。因?yàn)樵贏ngularJS、ExtJS等JavaScript框架中,所有控件 (例如菜單、按鈕、鏈接等)需經(jīng)JavaScript框架控制。故本申請(qǐng)可基于Angular JS、ExtJS等 JavaScript框架而實(shí)現(xiàn),當(dāng)然,本領(lǐng)域技術(shù)人員應(yīng)能理解上述JavaScript框架僅為舉例,其他現(xiàn)有的或今后可能出現(xiàn)的JavaScript框架如可適用于本申請(qǐng),也應(yīng)包含在本申請(qǐng)保護(hù)范圍以內(nèi),并在此以引用方式包含于此。
[0027]圖1示出根據(jù)本申請(qǐng)一個(gè)方面的一種管理用戶權(quán)限的方法流程圖。[〇〇28] 該方法包括步驟S11、步驟S12、步驟S13、步驟S14和步驟S15。具體地,在步驟S11 中,設(shè)備1獲取第一用戶的首次登陸信息,其中,所述第一用戶為系統(tǒng)中權(quán)限級(jí)別最高的用戶;在步驟S12中,設(shè)備1基于所述第一用戶的首次登陸信息,獲取并存儲(chǔ)所有權(quán)限受控元素的關(guān)聯(lián)信息,其中,所述權(quán)限受控元素的關(guān)聯(lián)信息包括所述權(quán)限受控元素的標(biāo)識(shí)信息;在步驟S13中,設(shè)備1根據(jù)所述權(quán)限受控元素的關(guān)聯(lián)信息構(gòu)建第一權(quán)限樹(shù);在步驟S14中,設(shè)備1基于所述第一權(quán)限樹(shù),獲取所述第一用戶對(duì)第二用戶的授權(quán)信息,其中,所述系統(tǒng)中包括若干個(gè)所述第二用戶;在步驟S15中,設(shè)備1根據(jù)所述第一用戶對(duì)第二用戶的授權(quán)信息,確定所述第二用戶擁有權(quán)限的所述權(quán)限受控元素的關(guān)聯(lián)信息。
[0029]在此,所述設(shè)備1包括但不限于網(wǎng)絡(luò)設(shè)備。所述網(wǎng)絡(luò)設(shè)備包括一種能夠按照事先設(shè)定或存儲(chǔ)的指令,自動(dòng)進(jìn)行數(shù)值計(jì)算和信息處理的電子設(shè)備,其硬件包括但不限于微處理器、專用集成電路(ASIC)、可編程門陣列(FPGA)、數(shù)字處理器(DSP)、嵌入式設(shè)備等。所述網(wǎng)絡(luò)設(shè)備其包括但不限于計(jì)算機(jī)、網(wǎng)絡(luò)主機(jī)、單個(gè)網(wǎng)絡(luò)服務(wù)器、多個(gè)網(wǎng)絡(luò)服務(wù)器集或多個(gè)服務(wù)器構(gòu)成的云;在此,云由基于云計(jì)算(Cloud Computing)的大量計(jì)算機(jī)或網(wǎng)絡(luò)服務(wù)器構(gòu)成, 其中,云計(jì)算是分布式計(jì)算的一種,由一群松散耦合的計(jì)算機(jī)集組成的一個(gè)虛擬超級(jí)計(jì)算機(jī)。所述網(wǎng)絡(luò)包括但不限于互聯(lián)網(wǎng)、廣域網(wǎng)、城域網(wǎng)、局域網(wǎng)、VPN網(wǎng)絡(luò)、無(wú)線自組織網(wǎng)絡(luò)(Ad Hoc網(wǎng)絡(luò))等。優(yōu)選地,設(shè)備1還可以是運(yùn)行于所述網(wǎng)絡(luò)設(shè)備上的腳本程序。當(dāng)然,本領(lǐng)域技術(shù)人員應(yīng)能理解上述設(shè)備1僅為舉例,其他現(xiàn)有的或今后可能出現(xiàn)的設(shè)備1如可適用于本申請(qǐng),也應(yīng)包含在本申請(qǐng)保護(hù)范圍以內(nèi),并在此以引用方式包含于此。
[0030]在步驟S11中,設(shè)備1獲取第一用戶的首次登陸信息,其中,所述第一用戶為系統(tǒng)中權(quán)限級(jí)別最高的用戶。
[0031]例如,所述第一用戶可以是超級(jí)管理員用戶,其在系統(tǒng)中具有最高的權(quán)限級(jí)別。
[0032]在步驟S12中,設(shè)備1基于所述第一用戶的首次登陸信息,獲取并存儲(chǔ)所有權(quán)限受控元素的關(guān)聯(lián)信息,其中,所述權(quán)限受控元素的關(guān)聯(lián)信息包括所述權(quán)限受控元素的標(biāo)識(shí)信息。
[0033]例如,當(dāng)所述第一用戶首次登陸后,會(huì)進(jìn)行初始化,S卩,所述設(shè)備1獲取并存儲(chǔ)所有權(quán)限受控元素的關(guān)聯(lián)信息。在此,所述權(quán)限受控元素包括功能界面組件元素(用于控制功能權(quán)限)和數(shù)據(jù)項(xiàng)元素(用于控制數(shù)據(jù)權(quán)限)。
[0034]在具體的實(shí)施例中,因?yàn)楣δ芙缑娼M件具有從屬關(guān)聯(lián)關(guān)系,比如用戶要先訪問(wèn)菜單項(xiàng),然后打開(kāi)頁(yè)面,頁(yè)面中還有分組的Tab項(xiàng),里面還有下拉框,按鈕,超鏈接等。對(duì)于功能界面組件,以運(yùn)行時(shí)上下文環(huán)境將多個(gè)相關(guān)組件的UUID(即所述權(quán)限受控元素的標(biāo)識(shí)信息) 以文件路徑類似的表示法依次聯(lián)合起來(lái)形成一個(gè)全新的組合UUID(即所述權(quán)限受控元素的關(guān)聯(lián)信息),比如,用moduleA/menuB/pageC來(lái)標(biāo)識(shí)一個(gè)頁(yè)面,用moduleA/menuB/pageC/ tabD.buttonE來(lái)標(biāo)識(shí)頁(yè)面上的一個(gè)按鈕。
[0035]在步驟S13中,設(shè)備1根據(jù)所述權(quán)限受控元素的關(guān)聯(lián)信息構(gòu)建第一權(quán)限樹(shù)。[〇〇36]例如,可將功能界面組件的組合UUID(即所述權(quán)限受控元素的關(guān)聯(lián)信息)解析成樹(shù)狀結(jié)構(gòu)(如圖2所示)展示,即構(gòu)建第一權(quán)限樹(shù)。在此,所述第一權(quán)限樹(shù)可以包括所述第一用戶擁有權(quán)限的全部權(quán)限受控元素。
[0037]在步驟S14中,設(shè)備1基于所述第一權(quán)限樹(shù),獲取所述第一用戶對(duì)第二用戶的授權(quán)信息,其中,所述系統(tǒng)中包括若干個(gè)所述第二用戶。
[0038]例如,所述第一用戶可基于所述第一權(quán)限樹(shù)(如圖2所示)對(duì)所述第二用戶進(jìn)行授權(quán);在所述系統(tǒng)中,所述第二用戶的權(quán)限級(jí)別低于所述第一用戶。
[0039]優(yōu)選地,在步驟S14中,設(shè)備1獲取所述第一用戶對(duì)各組或各角色的第二用戶的授權(quán)信息。
[0040]例如,所述第一用戶可以使用分組(GROUP)或角色(ROLE)進(jìn)行歸并授權(quán)管理,同一組或同一角色的所述第二用戶擁有相同的權(quán)限。
[0041]在步驟S15中,設(shè)備1根據(jù)所述第一用戶對(duì)第二用戶的授權(quán)信息,確定所述第二用戶擁有權(quán)限的所述權(quán)限受控元素的關(guān)聯(lián)信息。
[0042]例如,可以根據(jù)所述第一用戶對(duì)第二用戶的授權(quán)信息,構(gòu)建所述第二用戶擁有權(quán)限的所述權(quán)限受控元素的關(guān)聯(lián)信息(例如包括功能界面組件的組合UUID和數(shù)據(jù)項(xiàng)的UUID) 的清單。
[0043]優(yōu)選地,所述方法還包括:設(shè)備1當(dāng)獲取用戶的登錄信息,向所述用戶發(fā)送其擁有權(quán)限的所述權(quán)限受控元素的關(guān)聯(lián)信息。
[0044]例如,當(dāng)用戶成功登錄系統(tǒng)后,對(duì)應(yīng)的用戶設(shè)備(例如智能手機(jī)、平板電腦、筆記本電腦等)一次性加載該用戶擁有權(quán)限的所述權(quán)限受控元素的關(guān)聯(lián)信息的清單,包括功能界面組件的已授權(quán)組合UUID列表和所有維度下的已授權(quán)數(shù)據(jù)項(xiàng)UUID列表,以HashMap(哈希映射)和HashSet (底層采用HashMap來(lái)保存所有元素)的方式進(jìn)行緩存。當(dāng)該用戶訪問(wèn)功能界面組件時(shí),基于運(yùn)行時(shí)的上下文組合UUID進(jìn)行判斷是否獲得授權(quán),該用戶未獲授權(quán)的功能界面組件將以不可見(jiàn)(invisible)或不可用(disabled)的狀態(tài)展現(xiàn)。
[0045]優(yōu)選地,所述方法還包括:設(shè)備1根據(jù)用戶指令,增加或減少所述權(quán)限受控元素。 [0〇46]在優(yōu)選的實(shí)施例中,當(dāng)本申請(qǐng)基于AngularJS框架實(shí)現(xiàn)時(shí),用戶僅僅需要在頁(yè)面的 html頁(yè)面中對(duì)需要權(quán)限控制的元素使用自定義的指令(例如下述ub-access指令)就可以將頁(yè)面元素納入權(quán)限管理框架而進(jìn)行自動(dòng)化管理。
[0047]比如:
[0048]〈ub-access id= 〃dashboard_plan〃name = 〃計(jì)劃看板〃accessLevel = 〃 funct1n”parentId = ”dkce?ubest?dashboard’)
[0049]<div> 計(jì)劃看板 html 代碼</div>
[0050]</ub-access>
[0051]優(yōu)選地,所述方法還包括:設(shè)備1根據(jù)所述第一用戶對(duì)第二用戶的授權(quán)信息構(gòu)建第二權(quán)限樹(shù);基于所述第二權(quán)限樹(shù),獲取所述第二用戶對(duì)第三用戶的授權(quán)信息,其中,所述系統(tǒng)中包括若干個(gè)所述第三用戶;根據(jù)所述第二用戶對(duì)第三用戶的授權(quán)信息,確定所述第三用戶擁有權(quán)限的所述權(quán)限受控元素的關(guān)聯(lián)信息。[〇〇52]例如,所述第二權(quán)限樹(shù)可以包括所述第二用戶擁有權(quán)限的全部權(quán)限受控元素,所述第二用戶可基于所述第二權(quán)限樹(shù)(如圖2所示)對(duì)所述第三用戶進(jìn)行授權(quán);在所述系統(tǒng)中, 所述第三用戶的權(quán)限級(jí)別低于所述第二用戶,且由所述第二用戶管理。然后,可以根據(jù)所述第二用戶對(duì)第三用戶的授權(quán)信息,構(gòu)建所述第三用戶擁有權(quán)限的所述權(quán)限受控元素的關(guān)聯(lián)信息(例如包括功能界面組件的組合UUID和數(shù)據(jù)項(xiàng)的UUID)的清單,以便于確認(rèn)所述第三用戶的權(quán)限。
[0053]在優(yōu)選的實(shí)施例中,所述系統(tǒng)中還可以包括權(quán)限級(jí)別低于所述第三用戶的第四用戶,權(quán)限級(jí)別低于所述第四用戶的第五用戶,依次類推;從而實(shí)現(xiàn)分級(jí)授權(quán)機(jī)制。[〇〇54]圖3示出根據(jù)本申請(qǐng)另一個(gè)方面的一種管理用戶權(quán)限的設(shè)備1,其中,設(shè)備1包括第一裝置11、第二裝置12、第三裝置13、第四裝置14和第五裝置15。
[0055]具體地,所述第一裝置11獲取第一用戶的首次登陸信息,其中,所述第一用戶為系統(tǒng)中權(quán)限級(jí)別最高的用戶;所述第二裝置12基于所述第一用戶的首次登陸信息,獲取并存儲(chǔ)所有權(quán)限受控元素的關(guān)聯(lián)信息,其中,所述權(quán)限受控元素的關(guān)聯(lián)信息包括所述權(quán)限受控元素的標(biāo)識(shí)信息;所述第三裝置13根據(jù)所述權(quán)限受控元素的關(guān)聯(lián)信息構(gòu)建第一權(quán)限樹(shù);所述第四裝置14基于所述第一權(quán)限樹(shù),獲取所述第一用戶對(duì)第二用戶的授權(quán)信息,其中,所述系統(tǒng)中包括若干個(gè)所述第二用戶;所述第五裝置15根據(jù)所述第一用戶對(duì)第二用戶的授權(quán)信息,確定所述第二用戶擁有權(quán)限的所述權(quán)限受控元素的關(guān)聯(lián)信息。
[0056]在此,所述設(shè)備1包括但不限于網(wǎng)絡(luò)設(shè)備。所述網(wǎng)絡(luò)設(shè)備包括一種能夠按照事先設(shè)定或存儲(chǔ)的指令,自動(dòng)進(jìn)行數(shù)值計(jì)算和信息處理的電子設(shè)備,其硬件包括但不限于微處理器、專用集成電路(ASIC)、可編程門陣列(FPGA)、數(shù)字處理器(DSP)、嵌入式設(shè)備等。所述網(wǎng)絡(luò)設(shè)備其包括但不限于計(jì)算機(jī)、網(wǎng)絡(luò)主機(jī)、單個(gè)網(wǎng)絡(luò)服務(wù)器、多個(gè)網(wǎng)絡(luò)服務(wù)器集或多個(gè)服務(wù)器構(gòu)成的云;在此,云由基于云計(jì)算(Cloud Computing)的大量計(jì)算機(jī)或網(wǎng)絡(luò)服務(wù)器構(gòu)成, 其中,云計(jì)算是分布式計(jì)算的一種,由一群松散耦合的計(jì)算機(jī)集組成的一個(gè)虛擬超級(jí)計(jì)算機(jī)。所述網(wǎng)絡(luò)包括但不限于互聯(lián)網(wǎng)、廣域網(wǎng)、城域網(wǎng)、局域網(wǎng)、VPN網(wǎng)絡(luò)、無(wú)線自組織網(wǎng)絡(luò)(Ad Hoc網(wǎng)絡(luò))等。優(yōu)選地,設(shè)備1還可以是運(yùn)行于所述網(wǎng)絡(luò)設(shè)備上的腳本程序。當(dāng)然,本領(lǐng)域技術(shù)人員應(yīng)能理解上述設(shè)備1僅為舉例,其他現(xiàn)有的或今后可能出現(xiàn)的設(shè)備1如可適用于本申請(qǐng),也應(yīng)包含在本申請(qǐng)保護(hù)范圍以內(nèi),并在此以引用方式包含于此。[〇〇57]所述第一裝置11獲取第一用戶的首次登陸信息,其中,所述第一用戶為系統(tǒng)中權(quán)限級(jí)別最高的用戶。[〇〇58]例如,所述第一用戶可以是超級(jí)管理員用戶,其在系統(tǒng)中具有最高的權(quán)限級(jí)別。 [〇〇59]所述第二裝置12基于所述第一用戶的首次登陸信息,獲取并存儲(chǔ)所有權(quán)限受控元素的關(guān)聯(lián)信息,其中,所述權(quán)限受控元素的關(guān)聯(lián)信息包括所述權(quán)限受控元素的標(biāo)識(shí)信息。
[0060]例如,當(dāng)所述第一用戶首次登陸后,會(huì)進(jìn)行初始化,S卩,所述設(shè)備1獲取并存儲(chǔ)所有權(quán)限受控元素的關(guān)聯(lián)信息。在此,所述權(quán)限受控元素包括功能界面組件元素(用于控制功能權(quán)限)和數(shù)據(jù)項(xiàng)元素(用于控制數(shù)據(jù)權(quán)限)。
[0061]在具體的實(shí)施例中,因?yàn)楣δ芙缑娼M件具有從屬關(guān)聯(lián)關(guān)系,比如用戶要先訪問(wèn)菜單項(xiàng),然后打開(kāi)頁(yè)面,頁(yè)面中還有分組的Tab項(xiàng),里面還有下拉框,按鈕,超鏈接等。對(duì)于功能界面組件,以運(yùn)行時(shí)上下文環(huán)境將多個(gè)相關(guān)組件的UUID(即所述權(quán)限受控元素的標(biāo)識(shí)信息) 以文件路徑類似的表示法依次聯(lián)合起來(lái)形成一個(gè)全新的組合UUID(即所述權(quán)限受控元素的關(guān)聯(lián)信息),比如,用moduleA/menuB/pageC來(lái)標(biāo)識(shí)一個(gè)頁(yè)面,用moduleA/menuB/pageC/ tabD.buttonE來(lái)標(biāo)識(shí)頁(yè)面上的一個(gè)按鈕。[〇〇62]所述第三裝置13根據(jù)所述權(quán)限受控元素的關(guān)聯(lián)信息構(gòu)建第一權(quán)限樹(shù)。[〇〇63]例如,可將功能界面組件的組合UUID(即所述權(quán)限受控元素的關(guān)聯(lián)信息)解析成樹(shù)狀結(jié)構(gòu)(如圖2所示)展示,即構(gòu)建第一權(quán)限樹(shù)。在此,所述第一權(quán)限樹(shù)可以包括所述第一用戶擁有權(quán)限的全部權(quán)限受控元素。
[0064]所述第四裝置14基于所述第一權(quán)限樹(shù),獲取所述第一用戶對(duì)第二用戶的授權(quán)信息,其中,所述系統(tǒng)中包括若干個(gè)所述第二用戶。
[0065]例如,所述第一用戶可基于所述第一權(quán)限樹(shù)(如圖2所示)對(duì)所述第二用戶進(jìn)行授權(quán);在所述系統(tǒng)中,所述第二用戶的權(quán)限級(jí)別低于所述第一用戶。
[0066]優(yōu)選地,所述第四裝置14獲取所述第一用戶對(duì)各組或各角色的第二用戶的授權(quán)信息。[〇〇67]例如,所述第一用戶可以使用分組(GROUP)或角色(ROLE)進(jìn)行歸并授權(quán)管理,同一組或同一角色的所述第二用戶擁有相同的權(quán)限。[〇〇68]所述第五裝置15根據(jù)所述第一用戶對(duì)第二用戶的授權(quán)信息,確定所述第二用戶擁有權(quán)限的所述權(quán)限受控元素的關(guān)聯(lián)信息。
[0069]例如,可以根據(jù)所述第一用戶對(duì)第二用戶的授權(quán)信息,構(gòu)建所述第二用戶擁有權(quán)限的所述權(quán)限受控元素的關(guān)聯(lián)信息(例如包括功能界面組件的組合UUID和數(shù)據(jù)項(xiàng)的UUID) 的清單。
[0070]優(yōu)選地,所述設(shè)備1還包括第六裝置(圖中未示出);所述第六裝置當(dāng)獲取用戶的登錄信息,向所述用戶發(fā)送其擁有權(quán)限的所述權(quán)限受控元素的關(guān)聯(lián)信息。
[0071]例如,當(dāng)用戶成功登錄系統(tǒng)后,對(duì)應(yīng)的用戶設(shè)備(例如智能手機(jī)、平板電腦、筆記本電腦等)一次性加載該用戶擁有權(quán)限的所述權(quán)限受控元素的關(guān)聯(lián)信息的清單,包括功能界面組件的已授權(quán)組合UUID列表和所有維度下的已授權(quán)數(shù)據(jù)項(xiàng)UUID列表,以HashMap(哈希映射)和HashSet (底層采用HashMap來(lái)保存所有元素)的方式進(jìn)行緩存。當(dāng)該用戶訪問(wèn)功能界面組件時(shí),基于運(yùn)行時(shí)的上下文組合UUID進(jìn)行判斷是否獲得授權(quán),該用戶未獲授權(quán)的功能界面組件將以不可見(jiàn)(invisible)或不可用(disabled)的狀態(tài)展現(xiàn)。[〇〇72]優(yōu)選地,所述設(shè)備1還包括第七裝置(圖中未示出);所述第七裝置根據(jù)用戶指令, 增加或減少所述權(quán)限受控元素。[0〇73]在優(yōu)選的實(shí)施例中,當(dāng)本申請(qǐng)基于AngularJS框架實(shí)現(xiàn)時(shí),用戶僅僅需要在頁(yè)面的 html頁(yè)面中對(duì)需要權(quán)限控制的元素使用自定義的指令(例如下述ub-access指令)就可以將頁(yè)面元素納入權(quán)限管理框架而進(jìn)行自動(dòng)化管理。
[0074]比如:
[0075]〈ub-access id= "dashboard-plan"name ="計(jì)劃看板’ /accessLevel = // funct1n”parentId = ”dkce?ubest?dashboard’)
[0076]<div> 計(jì)劃看板 html 代碼</div>
[0077]</ub-access>
[0078]優(yōu)選地,所述設(shè)備1還包括第八裝置(圖中未示出)、第九裝置(圖中未示出)和第十裝置(圖中未示出);所述第八裝置根據(jù)所述第一用戶對(duì)第二用戶的授權(quán)信息構(gòu)建第二權(quán)限樹(shù);所述第九裝置基于所述第二權(quán)限樹(shù),獲取所述第二用戶對(duì)第三用戶的授權(quán)信息,其中, 所述系統(tǒng)中包括若干個(gè)所述第三用戶;所述第十裝置根據(jù)所述第二用戶對(duì)第三用戶的授權(quán)信息,確定所述第三用戶擁有權(quán)限的所述權(quán)限受控元素的關(guān)聯(lián)信息。
[0079]例如,所述第二權(quán)限樹(shù)可以包括所述第二用戶擁有權(quán)限的全部權(quán)限受控元素,所述第二用戶可基于所述第二權(quán)限樹(shù)(如圖2所示)對(duì)所述第三用戶進(jìn)行授權(quán);在所述系統(tǒng)中,所述第三用戶的權(quán)限級(jí)別低于所述第二用戶,且由所述第二用戶管理。然后,可以根據(jù)所述第二用戶對(duì)第三用戶的授權(quán)信息,構(gòu)建所述第三用戶擁有權(quán)限的所述權(quán)限受控元素的關(guān)聯(lián)信息(例如包括功能界面組件的組合UUID和數(shù)據(jù)項(xiàng)的UUID)的清單,以便于確認(rèn)所述第三用戶的權(quán)限。
[0080]在優(yōu)選的實(shí)施例中,所述系統(tǒng)中還可以包括權(quán)限級(jí)別低于所述第三用戶的第四用戶,權(quán)限級(jí)別低于所述第四用戶的第五用戶,依次類推;從而實(shí)現(xiàn)分級(jí)授權(quán)機(jī)制。
[0081]與現(xiàn)有技術(shù)相比,本申請(qǐng)首先獲取第一用戶的首次登陸信息,然后基于所述第一用戶的首次登陸信息,獲取并存儲(chǔ)所有權(quán)限受控元素的關(guān)聯(lián)信息,接著根據(jù)所述權(quán)限受控元素的關(guān)聯(lián)信息構(gòu)建第一權(quán)限樹(shù),并基于所述第一權(quán)限樹(shù),獲取所述第一用戶對(duì)第二用戶的授權(quán)信息,而后根據(jù)所述第一用戶對(duì)第二用戶的授權(quán)信息,確定所述第二用戶擁有權(quán)限的所述權(quán)限受控元素的關(guān)聯(lián)信息;本申請(qǐng)通過(guò)低耦合、可擴(kuò)展、高性能的方式實(shí)現(xiàn)用戶權(quán)限管理,從而避免開(kāi)發(fā)人員編寫(xiě)大量邏輯判定代碼進(jìn)行權(quán)限控制。進(jìn)一步地,本申請(qǐng)可以根據(jù)用戶指令,增加或減少所述權(quán)限受控元素,從而增加靈活性和擴(kuò)展性。
[0082]需要注意的是,本申請(qǐng)可在軟件和/或軟件與硬件的組合體中被實(shí)施,例如,可采用專用集成電路(ASIC)、通用目的計(jì)算機(jī)或任何其他類似硬件設(shè)備來(lái)實(shí)現(xiàn)。在一個(gè)實(shí)施例中,本申請(qǐng)的軟件程序可以通過(guò)處理器執(zhí)行以實(shí)現(xiàn)上文所述步驟或功能。同樣地,本申請(qǐng)的軟件程序(包括相關(guān)的數(shù)據(jù)結(jié)構(gòu))可以被存儲(chǔ)到計(jì)算機(jī)可讀記錄介質(zhì)中,例如,RAM存儲(chǔ)器, 磁或光驅(qū)動(dòng)器或軟磁盤及類似設(shè)備。另外,本申請(qǐng)的一些步驟或功能可采用硬件來(lái)實(shí)現(xiàn),例如,作為與處理器配合從而執(zhí)行各個(gè)步驟或功能的電路。[〇〇83]另外,本申請(qǐng)的一部分可被應(yīng)用為計(jì)算機(jī)程序產(chǎn)品,例如計(jì)算機(jī)程序指令,當(dāng)其被計(jì)算機(jī)執(zhí)行時(shí),通過(guò)該計(jì)算機(jī)的操作,可以調(diào)用或提供根據(jù)本申請(qǐng)的方法和/或技術(shù)方案。 而調(diào)用本申請(qǐng)的方法的程序指令,可能被存儲(chǔ)在固定的或可移動(dòng)的記錄介質(zhì)中,和/或通過(guò)廣播或其他信號(hào)承載媒體中的數(shù)據(jù)流而被傳輸,和/或被存儲(chǔ)在根據(jù)所述程序指令運(yùn)行的計(jì)算機(jī)設(shè)備的工作存儲(chǔ)器中。在此,根據(jù)本申請(qǐng)的一個(gè)實(shí)施例包括一個(gè)裝置,該裝置包括用于存儲(chǔ)計(jì)算機(jī)程序指令的存儲(chǔ)器和用于執(zhí)行程序指令的處理器,其中,當(dāng)該計(jì)算機(jī)程序指令被該處理器執(zhí)行時(shí),觸發(fā)該裝置運(yùn)行基于前述根據(jù)本申請(qǐng)的多個(gè)實(shí)施例的方法和/或技術(shù)方案。[〇〇84]對(duì)于本領(lǐng)域技術(shù)人員而言,顯然本申請(qǐng)不限于上述示范性實(shí)施例的細(xì)節(jié),而且在不背離本申請(qǐng)的精神或基本特征的情況下,能夠以其他的具體形式實(shí)現(xiàn)本申請(qǐng)。因此,無(wú)論從哪一點(diǎn)來(lái)看,均應(yīng)將實(shí)施例看作是示范性的,而且是非限制性的,本申請(qǐng)的范圍由所附權(quán)利要求而不是上述說(shuō)明限定,因此旨在將落在權(quán)利要求的等同要件的含義和范圍內(nèi)的所有變化涵括在本申請(qǐng)內(nèi)。不應(yīng)將權(quán)利要求中的任何附圖標(biāo)記視為限制所涉及的權(quán)利要求。此夕卜,顯然“包括”一詞不排除其他單元或步驟,單數(shù)不排除復(fù)數(shù)。裝置權(quán)利要求中陳述的多個(gè)單元或裝置也可以由一個(gè)單元或裝置通過(guò)軟件或者硬件來(lái)實(shí)現(xiàn)。第一,第二等詞語(yǔ)用來(lái)表示名稱,而并不表示任何特定的順序。
【主權(quán)項(xiàng)】
1.一種管理用戶權(quán)限的方法,其中,該方法包括:獲取第一用戶的首次登陸信息,其中,所述第一用戶為系統(tǒng)中權(quán)限級(jí)別最高的用戶; 基于所述第一用戶的首次登陸信息,獲取并存儲(chǔ)所有權(quán)限受控元素的關(guān)聯(lián)信息,其中, 所述權(quán)限受控元素的關(guān)聯(lián)信息包括所述權(quán)限受控元素的標(biāo)識(shí)信息;根據(jù)所述權(quán)限受控元素的關(guān)聯(lián)信息構(gòu)建第一權(quán)限樹(shù);基于所述第一權(quán)限樹(shù),獲取所述第一用戶對(duì)第二用戶的授權(quán)信息,其中,所述系統(tǒng)中包 括若干個(gè)所述第二用戶;根據(jù)所述第一用戶對(duì)第二用戶的授權(quán)信息,確定所述第二用戶擁有權(quán)限的所述權(quán)限受 控元素的關(guān)聯(lián)信息。2.根據(jù)權(quán)利要求1所述的方法,其中,所述獲取所述第一用戶對(duì)第二用戶的授權(quán)信息包 括:獲取所述第一用戶對(duì)各組或各角色的第二用戶的授權(quán)信息。3.根據(jù)權(quán)利要求1或2所述的方法,其中,所述方法還包括:當(dāng)獲取用戶的登錄信息,向所述用戶發(fā)送其擁有權(quán)限的所述權(quán)限受控元素的關(guān)聯(lián)信息。4.根據(jù)權(quán)利要求1至3中任一項(xiàng)所述的方法,其中,所述方法還包括:根據(jù)用戶指令,增加或減少所述權(quán)限受控元素。5.根據(jù)權(quán)利要求1至4中任一項(xiàng)所述的方法,其中,所述方法還包括:根據(jù)所述第一用戶對(duì)第二用戶的授權(quán)信息構(gòu)建第二權(quán)限樹(shù);基于所述第二權(quán)限樹(shù),獲取所述第二用戶對(duì)第三用戶的授權(quán)信息,其中,所述系統(tǒng)中包 括若干個(gè)所述第三用戶;根據(jù)所述第二用戶對(duì)第三用戶的授權(quán)信息,確定所述第三用戶擁有權(quán)限的所述權(quán)限受 控元素的關(guān)聯(lián)信息。6.—種管理用戶權(quán)限的設(shè)備,其中,該設(shè)備包括:第一裝置,用于獲取第一用戶的首次登陸信息,其中,所述第一用戶為系統(tǒng)中權(quán)限級(jí)別 最尚的用戶;第二裝置,用于基于所述第一用戶的首次登陸信息,獲取并存儲(chǔ)所有權(quán)限受控元素的 關(guān)聯(lián)信息,其中,所述權(quán)限受控元素的關(guān)聯(lián)信息包括所述權(quán)限受控元素的標(biāo)識(shí)信息;第三裝置,用于根據(jù)所述權(quán)限受控元素的關(guān)聯(lián)信息構(gòu)建第一權(quán)限樹(shù);第四裝置,用于基于所述第一權(quán)限樹(shù),獲取所述第一用戶對(duì)第二用戶的授權(quán)信息,其 中,所述系統(tǒng)中包括若干個(gè)所述第二用戶;第五裝置,用于根據(jù)所述第一用戶對(duì)第二用戶的授權(quán)信息,確定所述第二用戶擁有權(quán) 限的所述權(quán)限受控元素的關(guān)聯(lián)信息。7.根據(jù)權(quán)利要求6所述的設(shè)備,其中,所述第四裝置用于:獲取所述第一用戶對(duì)各組或各角色的第二用戶的授權(quán)信息。8.根據(jù)權(quán)利要求6或7所述的設(shè)備,其中,所述設(shè)備還包括:第六裝置,用于當(dāng)獲取用戶的登錄信息,向所述用戶發(fā)送其擁有權(quán)限的所述權(quán)限受控 元素的關(guān)聯(lián)信息。9.根據(jù)權(quán)利要求6至8中任一項(xiàng)所述的設(shè)備,其中,所述設(shè)備還包括:第七裝置,用于根據(jù)用戶指令,增加或減少所述權(quán)限受控元素。10.根據(jù)權(quán)利要求6至9中任一項(xiàng)所述的設(shè)備,其中,所述設(shè)備還包括:第八裝置,用于根據(jù)所述第一用戶對(duì)第二用戶的授權(quán)信息構(gòu)建第二權(quán)限樹(shù);第九裝置,用于基于所述第二權(quán)限樹(shù),獲取所述第二用戶對(duì)第三用戶的授權(quán)信息,其 中,所述系統(tǒng)中包括若干個(gè)所述第三用戶;第十裝置,用于根據(jù)所述第二用戶對(duì)第三用戶的授權(quán)信息,確定所述第三用戶擁有權(quán) 限的所述權(quán)限受控元素的關(guān)聯(lián)信息。
【文檔編號(hào)】G06F21/45GK105956459SQ201610307403
【公開(kāi)日】2016年9月21日
【申請(qǐng)日】2016年5月11日
【發(fā)明人】王曉菁, 陳懷海, 杜宇杰
【申請(qǐng)人】上海佳依佳信息科技有限公司