5.0 KiB
5.0 KiB
后台管理系统 - 功能缺失清单
更新时间:2026-01-05 说明:记录系统中尚未实现但需要的功能
FEATURE-001:缺少权限管理页面 ✅ 已完成
- 优先级:🟡 中
- 模块:系统管理
- 问题描述:系统没有权限管理页面,无法可视化管理权限数据
完成状态
- ✅ 后端有
PermissionController提供 API(已扩展CRUD接口) - ✅ 后端有
permissions表存储权限数据 - ✅ 权限数据通过
DataSeeder.cs初始化(已添加权限管理相关权限) - ✅ 前端权限管理页面已创建 (
views/system/permission/index.vue) - ✅ 前端API已更新 (
api/permission.ts)
实现功能
- 权限列表(按模块分组显示,支持折叠展开)
- 新增权限(支持自定义模块)
- 编辑权限(名称、模块、描述)
- 删除权限(会同时删除角色关联)
- 搜索过滤(按关键词、模块筛选)
新增文件
server/HoneyBox/src/HoneyBox.Admin/Models/Permission/CreatePermissionRequest.csserver/HoneyBox/src/HoneyBox.Admin/Models/Permission/UpdatePermissionRequest.csserver/HoneyBox/src/HoneyBox.Admin/admin-web/src/views/system/permission/index.vueserver/HoneyBox/src/HoneyBox.Admin/Data/Migrations/add_permission_management.sql
部署说明
对于已有数据库,需要执行 add_permission_management.sql 脚本添加权限管理相关数据。
权限编码对照表
当前系统已定义的权限(DataSeeder.cs)
| 模块 | 权限编码 | 权限名称 |
|---|---|---|
| 菜单管理 | menu:list |
菜单列表 |
menu:detail |
菜单详情 | |
menu:create |
创建菜单 | |
menu:update |
更新菜单 | |
menu:delete |
删除菜单 | |
| 角色管理 | role:list |
角色列表 |
role:detail |
角色详情 | |
role:create |
创建角色 | |
role:update |
更新角色 | |
role:delete |
删除角色 | |
role:assign_menu |
分配菜单 | |
role:assign_permission |
分配权限 | |
| 权限管理 | permission:list |
权限列表 |
permission:detail |
权限详情 | |
permission:create |
创建权限 | |
permission:update |
更新权限 | |
permission:delete |
删除权限 | |
| 管理员管理 | user:list |
管理员列表 |
user:detail |
管理员详情 | |
user:create |
创建管理员 | |
user:update |
更新管理员 | |
user:delete |
删除管理员 | |
user:assign_role |
分配角色 | |
user:assign_department |
分配部门 | |
user:assign_menu |
分配专属菜单 | |
user:reset_password |
重置密码 | |
| 部门管理 | department:list |
部门列表 |
department:detail |
部门详情 | |
department:create |
创建部门 | |
department:update |
更新部门 | |
department:delete |
删除部门 | |
department:assign_menu |
分配菜单 | |
| 操作日志 | log:list |
日志列表 |
log:detail |
日志详情 |
权限控制流程
┌─────────────┐ ┌─────────────┐ ┌─────────────────┐
│ 用户登录 │ ──▶ │ 获取用户角色 │ ──▶ │ 获取角色关联权限 │
└─────────────┘ └─────────────┘ └─────────────────┘
│
▼
┌─────────────────────────────────────────────────────────┐
│ 返回 permissions 数组给前端 │
│ 超级管理员返回 ["*"] 表示拥有所有权限 │
└─────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────┐
│ 前端 v-permission 指令判断按钮是否显示 │
│ 如果 permissions 包含 "*" 或 指定权限码,则显示按钮 │
└─────────────────────────────────────────────────────────┘
相关数据库表
| 表名 | 说明 |
|---|---|
permissions |
权限定义表 |
roles |
角色表 |
role_permissions |
角色-权限关联表 |
role_menus |
角色-菜单关联表 |
admin_users |
管理员表 |
admin_user_roles |
管理员-角色关联表 |
admin_user_menus |
管理员-专属菜单关联表 |
departments |
部门表 |
department_menus |
部门-菜单关联表 |