Go to file
夏犀麟 8fdb25e6bd feat(admin): 后台登录/菜单/按钮级权限/RBAC管理与服务器日志监控
后端:
- 种子数据:超级管理员(admin/admin123)、super_admin 角色、22 条菜单(含按钮权限码)、角色绑定
- admin_menu 扩展 icon/component/hidden 字段(003_schema_ext.sql),手动补齐 entity/do/table
- auth 扩展:/auth/info、/auth/codes(仅登录),路由拆分公开/Profile/受保护三组
- 菜单路由:/menu/routes 返回 vben backend 动态路由树(按角色过滤、排序)
- RBAC 管理:/admins、/roles、/menus CRUD(含角色绑定、重置密码、菜单授权)
- 日志监控:/log/files、/log/tail(尾部读取+关键词过滤+路径穿越防护)
- 安全加固:接口鉴权改为「方法+路径→权限码」自动映射,杜绝任意权限码越权
- 修复:gf v2.10.2  不自动替换→cmd 注入;MySQL driver 需显式引入 contrib
- 全链路冒烟测试通过(含越权拒绝 30003)
2026-08-24 22:35:54 +08:00
api feat(admin): 后台登录/菜单/按钮级权限/RBAC管理与服务器日志监控 2026-08-24 22:35:54 +08:00
common feat(api): 新增公共接口 api/common/v1(tools 工具端点)并修复 gtime 格式化 2026-08-24 17:29:30 +08:00
docs/change-log refactor(api): 契约文件 index.go 重命名为 <功能名>.go 2026-08-24 18:07:33 +08:00
hack feat(dev): 项目初始化。 2026-07-17 17:58:08 +08:00
internal feat(admin): 后台登录/菜单/按钮级权限/RBAC管理与服务器日志监控 2026-08-24 22:35:54 +08:00
manifest feat(admin): 后台登录/菜单/按钮级权限/RBAC管理与服务器日志监控 2026-08-24 22:35:54 +08:00
resource feat(dev): 项目初始化。 2026-07-17 17:58:08 +08:00
utility feat(dev): 项目初始化。 2026-07-17 17:58:08 +08:00
.gitattributes feat(dev): 项目初始化。 2026-07-17 17:58:08 +08:00
.gitignore feat(admin): 后台登录/菜单/按钮级权限/RBAC管理与服务器日志监控 2026-08-24 22:35:54 +08:00
AGENTS.md refactor(api): 契约文件 index.go 重命名为 <功能名>.go 2026-08-24 18:07:33 +08:00
go.mod feat(admin): 后台登录/菜单/按钮级权限/RBAC管理与服务器日志监控 2026-08-24 22:35:54 +08:00
go.sum feat(admin): 后台登录/菜单/按钮级权限/RBAC管理与服务器日志监控 2026-08-24 22:35:54 +08:00
main.go feat(admin): 后台登录/菜单/按钮级权限/RBAC管理与服务器日志监控 2026-08-24 22:35:54 +08:00
Makefile feat(dev): 项目初始化。 2026-07-17 17:58:08 +08:00
PROJECT_STRUCTURE.md refactor(api): 契约文件 index.go 重命名为 <功能名>.go 2026-08-24 18:07:33 +08:00
README.MD feat(dev): 项目初始化。 2026-07-17 17:58:08 +08:00

Personal multi-client service

Layout

api → internal/controller → internal/service → internal/dao → internal/model(entity/do) is enforced. DTO and VO live in internal/model/dto and internal/model/vo; neither API types nor entities cross that boundary.

Database model generation

Run manifest/sql/001_core.sql on MySQL, set DB_DSN, then run:

gf gen dao -p internal -g default -gt -c

The command is intentionally the only source of internal/dao, internal/model/do, and internal/model/entity.

API isolation

  • /api/v1/*: user API, terminal header/body supports mini, h5, and app.
  • /admin/v1/*: admin API. Protected endpoints require both an admin access token and an X-Permission identifier.

Use GF_GCFG_FILE=config.dev.yaml (or config.test.yaml / config.prod.yaml) and set DB_DSN plus a strong JWT_SECRET before startup.