Skip to content

權限與菜單管理

PieMDM 的菜單系統與權限系統緊密集成,支持動態菜單渲染。這意味著用戶登錄系統後,只能看到其擁有權限的菜單項。

菜單管理

菜單管理功能允許管理員配置系統的導航結構。

1. 菜單列表

以樹形結構展示系統的所有菜單和按鈕。

  • 目錄:一級導航,通常不直接對應頁面。
  • 菜單:具體的頁面入口。
  • 按鈕:頁面內的操作及其對應的資源標識。

2. 新增/編輯菜單

在配置菜單時,主要包含以下字段:

  • 上級菜單:選擇父級節點。
  • 菜單類型:目錄 / 菜單 / 按鈕。
  • 菜單名稱:顯示在側邊欄的標題。
  • 路由地址:前端路由路徑(如 /system/user)。
  • 組件路徑:Vue 組件的文件路徑(如 @/views/system/role/index.vue)。
  • 權限標識:後端鑑權的關鍵標識(如 system:user:list)。
  • 顯示狀態:控制菜單是否在側邊欄顯示(部分功能頁面可能需要隱藏)。
  • 排序:控制菜單的顯示順序。

權限控制機制

菜單可見性

前端應用在初始化時,會調用 API 獲取當前用戶的權限列表。系統根據用戶的權限標識,過濾出可訪問的路由表並動態掛載。如果用戶沒有某個菜單的權限,該菜單將不會渲染在側邊欄中。

按鈕級權限

在頁面內部,通過指令或函數控制按鈕的顯示。 例如,只有擁有 system:user:add 權限的用戶,才能看到“新建用戶”按鈕。

html
<!-- 示例:Vue 指令控制按鈕權限 -->
<el-button v-hasPerm="['system:user:add']">新建用戶</el-button>

API 接口鑑權

前端的權限控制僅用於提升用戶體驗,核心的安全性依賴於後端的接口鑑權。 後端中間件會攔截請求,驗證當前用戶的角色是否包含請求所需的權限標識。如果權限不足,將返回 403 Forbidden

配置建議

  1. 層級清晰:建議按照“模塊 -> 功能 -> 操作”的層級結構組織權限標識(如 system -> user -> add)。
  2. 標識唯一:確保每個菜單和按鈕的權限標識在系統中是唯一的。
  3. 同步維護:新增後端接口時,應同步在菜單管理中添加對應的按鈕/資源權限,並分配給相應角色。

Released under the MIT License.