[發明專利]一種基于Angular的集中式前端ACL權限控制方法有效
| 申請號: | 202011409116.2 | 申請日: | 2020-12-04 |
| 公開(公告)號: | CN112507356B | 公開(公告)日: | 2023-01-03 |
| 發明(設計)人: | 李婷婷;薄智元 | 申請(專利權)人: | 上海易校信息科技有限公司 |
| 主分類號: | G06F21/60 | 分類號: | G06F21/60 |
| 代理公司: | 上海國瓴律師事務所 31363 | 代理人: | 傅耀 |
| 地址: | 200240 上*** | 國省代碼: | 上海;31 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 angular 集中 前端 acl 權限 控制 方法 | ||
本發明提供了一種基于Angular的集中式前端ACL權限控制方法,包括如下步驟:建立一個ACL服務類;獲得所有ACL權限列表信息;設置權限等級;設置change事件;判斷版本限制的函數;獲取所有版本信息的函數。其中本發明的有益效果是:通過統一的服務類處理,在不同的場景只需注入集中處理的服務類,配合不同的Angular的如Directive、RouteGuards、HttpInterceptor等功能,實現了自動區分不同場景下權限控制,最終結果只需要開發人員維護一個服務類即可。操作簡單、智能,方便軟件開發后期的調試、維護,在多版本管理的應用場景下表現好,提升開發人員的開發效率,有效降低代碼冗余。
技術領域
本發明涉及軟件開發領域,特別涉及一種基于Angular的集中式前端ACL 權限控制方法。
背景技術
傳統的角色權限控制比較分散,針對不同的場景使用不同的技術,然后有針對性的進行具體的權限判斷,大體可以分為以下四方面:
1、接口權限:一般采用jwt的形式驗證,通過和http請求相關的攔截器設置權限控制;
2、按鈕權限:后端返回的權限列表作為數據輸入,通過指令或預先編寫的js 操作權限顯隱相關的dom元素,舉例來說決定了單個按鈕針對單個用戶的顯隱/ 啟用/禁用狀態;
3、頁面權限:后端返回的權限列表作為數據輸入,動態生成可以訪問的頁面列表;
4、路由權限:每次在路由跳轉之前,首先判斷所跳轉的路由是否處在權限列表中;
針對以上不同的場景,傳統的權限控制方式分散到具體場景。故而在開發的過程中,首先需要開發人員在代碼中寫明邏輯判斷,這樣會導致不同場景中出現冗余代碼,提高了開發人員的工作量。
發明內容
為了解決上述技術問題,本發明中披露了一種基于Angular的集中式前端 ACL權限控制方法,本發明的技術方案是這樣實施的:
一種基于Angular的集中式前端ACL權限控制方法,包括如下步驟:
S1:建立一個ACL服務類:
編寫一個集中處理所有權限邏輯的服務類,使用軟件開發中依賴注入的設計模式,將服務類注入到不同場景下,使得不同場景都具有控制權限的特性;
S2:獲得所有ACL權限列表信息:
設置好一個獲取ACL權限列表信息的數據源。從數據源拉取數據后會傳入 ACL服務類中進行處理;此數據源可以是后端服務器或者前端本地,亦或者其他任意平臺;
S3:設置權限等級:根據函數賦予權限等級,從數據源返回的數據中讀取,通過函數進行判斷后,調用ACL的服務類中的配置方法,將權限列表信息保存在變量中;
S4:設置change事件:使用設計模式中的觀察者模式,提供一個Observable 對象供Directive類以供訂閱;
S5:判斷版本限制的函數:校驗傳入規則在當前版本限制下是否可用。函數接受參數,該參數提供在具體場景下需要進行校驗的權限信息,參數的數據結構使用TypeScript約束的標準數據類型;
S6:獲取所有版本信息的函數:此函數將服務類中存儲的所有版本信息變量返回,以便于調試和查看整個ACL的狀態。
優選地,所述S3步驟包括設置role信息、設置level信息和設置platform信息。
優選地,還包括顯隱場景權限控制流程,所述流程包括如下步驟:
D1:設置ACL Directive,主要負責模板顯隱場景下的權限控制;
D2:傳入顯隱規則:根據需求定義顯隱規則,設置在不同權限下顯示和隱藏的需求;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于上海易校信息科技有限公司,未經上海易校信息科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202011409116.2/2.html,轉載請聲明來源鉆瓜專利網。





