Alain 選單許可權控制

2021-09-12 18:47:46 字數 1292 閱讀 5705

動態選單管理,使用者對應角色,角色對應選單。

為使用者進行設定角色,登陸系統後,使用者可使用其擁有角色對應的所有選單。

功能實現很簡單,這裡就不進行**的講解了,直接講一下我所實現的思路。

系統設定中,前台選單遵循如下格式:

menus: [,],

}]

所以最開始的思路也很簡單,後台的menu實體中儲存選單所有相關的資訊。

後台直接就查出當前登入使用者所有的選單,前台根據返回來的選單資料構建前台選單。

能實現肯定是能實現,但我們進行設計時,考慮的不應僅僅是實現,考慮的更多的是我這麼實現,效率高不高?以後好不好改?能不能被以後維護的人員快速理解?

斟酌之後,斷然拋棄了這種實現,因為,不能把所有的資料都放在後台。

就拿icon字段來說,如果我們採用了上述實現:

那當我們以後想修改前台選單圖示的時候,需要去修改後台的資料初始化。這顯然不合理,以後維護的人員肯定會存在乙個疑問,這是誰設計的選單?我改個前台的圖示為什麼要動後台?

既然不能講資料都放在後台,那前後臺就各司其職。

前台:包含選單名稱,選單圖示,選單路由等資訊。負責前台選單的格式顯示。

後台:只保留,選單名,選單路由,父選單三項資訊。負責後台使用者的選單授權。

核心思想就是:前台配置好所有的選單,但預設將選單隱藏。

應用啟動時,查詢後台介面,獲取當前使用者的所有授權選單,授權乙個,前台就顯示乙個。

前台選單:寫選單時將hide置為true,預設隱藏。

menus: [,]

}]

然後就是具體的邏輯,先獲取前台的選單,即所有選單。

獲取當前使用者授權選單列表,以路由表示該選單唯一,如果路由被授權,就把hide置為false

/**

* 獲取所有被授權的選單

*/getallauthmenu(): observable> );

});return menus;

}));

}

先完成,再完美。這裡僅實現了選單的隱藏,需要再編寫許可權控制邏輯,使我們的系統更安全,但那是我們以後要考慮的事情。現在先加個todo

先把客戶想要的功能先實現了,至於你實現得如何,**如何,客戶統統不關心,我們在先滿足客戶對開發速度需求的前提下,以後再抽出時間將程式的某些功能完美。

Alain 選單許可權控制

動態選單管理,使用者對應角色,角色對應選單。為使用者進行設定角色,登陸系統後,使用者可使用其擁有角色對應的所有選單。功能實現很簡單,這裡就不進行 的講解了,直接講一下我所實現的思路。系統設定中,前台選單遵循如下格式 menus 所以最開始的思路也很簡單,後台的menu實體中儲存選單所有相關的資訊。後...

vue樹形許可權選單 前後端分離 前端許可權控制設計

我們比較常見的就是基於角色的訪問控制,使用者通過角色與許可權進行關聯。簡單地說,乙個使用者擁有多個角色,乙個角色擁有多個許可權。這樣,就構造成 使用者 角色 許可權 的授權模型。在這種模型中,使用者與角色之間 角色與許可權之間,通常都是多對多的關係。通常在業務系統裡面的許可權控制分為選單的訪問 頁面...

控制選單訪問許可權的2種思想

1.比較簡單的處理方法 使用者 user 直接有訪問某些選單的訪問許可權 例如 moduleaccess 許可權 若系統規模比較大一些,那就是 角色 role 有訪問某些選單的訪問許可權,使用者直接擁有 某些 選單的,訪問許可權 2.稍微複雜的處理方法 建議這樣處理 某個選單的訪問許可權是,由於擁有...