mini-rbac/README.md
2025-01-17 01:04:12 +08:00

3.0 KiB
Raw Permalink Blame History

Mini RBAC 系统

Python(FastAPI)VUE3实现,仅保留核心权限控制的极简后台管理。 index

相关视频:https://www.bilibili.com/video/BV1mP411H7PL/

项目说明文档

1. 数据库模型

1.1 用户表 (sys_user)

  • username: 账号 (唯一)
  • nickname: 姓名
  • password: 密码

1.2 角色表 (sys_role)

  • name: 角色名称
  • remark: 角色描述

1.3 菜单表 (sys_menu)

  • name: 名称
  • icon: 菜单图标
  • path: 菜单url
  • type: 菜单类型 (0目录 1组件 2按钮 3数据)
  • component: 组件地址
  • pid: 父id
  • identifier: 权限标识 (如user:add)
  • api: 接口地址
  • method: 接口请求方式

1.4 关系表

  • 用户角色关系表 (sys_user_role)

    • uid: 用户id
    • rid: 角色id
  • 角色菜单关系表 (sys_role_menu)

    • rid: 角色id
    • mid: 菜单id

2. API接口

2.1 认证相关

  • POST /login 用户登录
  • GET /ws WebSocket系统信息

2.2 用户管理

  • GET /user 用户列表
  • POST /user/query 用户查询
  • POST /user 用户新增
  • DELETE /user/{pk} 用户删除
  • GET /user/{pk} 用户信息
  • PUT /user/{pk} 用户更新
  • PUT /user/role/{rid} 用户切换角色

2.3 角色管理

  • GET /role 角色列表
  • POST /role/query 角色查询
  • POST /role 角色新增
  • GET /role/{rid}/menu 查询角色权限
  • DELETE /role/{pk} 角色删除
  • PUT /role/{pk} 角色更新

2.4 菜单管理

  • POST /menu 菜单新增
  • GET /menu 菜单列表
  • DELETE /menu/{pk} 菜单删除
  • PUT /menu/{pk} 菜单更新

3. 技术栈

3.1 后端

  • Python 3.x
  • FastAPI (Web框架)
  • Tortoise ORM (ORM框架)
  • Uvicorn (ASGI服务器)
  • Gunicorn (WSGI服务器)
  • bcrypt (密码加密)
  • python-jose (JWT认证)

3.2 前端

  • Vue 3 (前端框架)
  • Pinia (状态管理)
  • Vue Router (路由管理)
  • Ant Design Vue (UI组件库)
  • ECharts (图表库)
  • Vite (构建工具)
  • Axios (HTTP客户端)

4. 网页页面

4.1 主要页面结构

  • 登录页 (login)
  • 主页面 (main)
    • 仪表盘 (dashboard)
    • 系统管理
      • 用户管理 (user)
      • 角色管理 (role)
      • 菜单管理 (menu)
    • 测试页面 (test)

4.2 页面功能

  • 登录认证
  • 用户管理:增删改查、角色分配
  • 角色管理:增删改查、权限分配
  • 菜单管理:增删改查
  • 仪表盘:系统信息展示
  • WebSocket实时数据更新

4.3权限控制

  • 前端菜单权限控制
  • 前端路由权限控制
  • 前端按钮权限控制
  • 后端接口权限控制

备注

原项目地址:https://github.com/zy7y/mini-rbac

本人学习全栈项目时clone了这个项目作为参考同时优化了readme文件未违反mit开源协议

图片展示

页面

login change user role menu

接口

user-api role-menu