mirror of
https://github.com/fastapiadmin/FastapiAdmin.git
synced 2026-09-20 20:39:55 +00:00
refactor: 完成系统架构升级与模块拆分
本次提交进行了大规模的系统重构: 1. 拆分租户相关模块到platform平台层,重构租户表名与关联关系 2. 迁移日志、工单、插件等模块到对应层级,统一代码结构 3. 重构批量操作接口路径,从/available/setting改为/status/batch 4. 新增批量删除基础模型,统一处理批量操作逻辑 5. 优化导入导出接口,修正路由方法与描述信息 6. 修复循环引用问题,重构依赖注入与类型导入 7. 更新初始化脚本与路由注册,新增平台管理路由 8. 重构岗位模型,新增岗位编码字段与校验 9. 完善部门删除逻辑,新增子部门删除限制 10. 更新初始化数据与配置文件,适配新架构
This commit is contained in:
@@ -0,0 +1,29 @@
|
||||
[
|
||||
{
|
||||
"status": 1,
|
||||
"login_location": "北京市",
|
||||
"login_ip": "192.168.1.100",
|
||||
"request_os": "Windows 10",
|
||||
"request_browser": "Chrome 120.0",
|
||||
"msg": "登录成功",
|
||||
"created_id": 1
|
||||
},
|
||||
{
|
||||
"status": 1,
|
||||
"login_location": "上海市",
|
||||
"login_ip": "192.168.1.101",
|
||||
"request_os": "macOS 14.0",
|
||||
"request_browser": "Safari 17.0",
|
||||
"msg": "登录成功",
|
||||
"created_id": 2
|
||||
},
|
||||
{
|
||||
"status": 2,
|
||||
"login_location": "广州市",
|
||||
"login_ip": "192.168.1.102",
|
||||
"request_os": "Windows 11",
|
||||
"request_browser": "Edge 120.0",
|
||||
"msg": "密码错误",
|
||||
"created_id": 3
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1,30 @@
|
||||
[
|
||||
{
|
||||
"name": "基础版",
|
||||
"code": "BASIC",
|
||||
"status": "0",
|
||||
"sort": 1,
|
||||
"description": "基础功能套餐,包含用户、角色、部门管理"
|
||||
},
|
||||
{
|
||||
"name": "标准版",
|
||||
"code": "STANDARD",
|
||||
"status": "0",
|
||||
"sort": 2,
|
||||
"description": "标准功能套餐,包含基础功能+菜单+字典+参数配置"
|
||||
},
|
||||
{
|
||||
"name": "专业版",
|
||||
"code": "PROFESSIONAL",
|
||||
"status": "0",
|
||||
"sort": 3,
|
||||
"description": "专业功能套餐,包含标准功能+日志+通知+工单"
|
||||
},
|
||||
{
|
||||
"name": "企业版",
|
||||
"code": "ENTERPRISE",
|
||||
"status": "0",
|
||||
"sort": 4,
|
||||
"description": "企业功能套餐,包含所有功能+插件+多租户"
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1,67 @@
|
||||
[
|
||||
{
|
||||
"name": "代码生成器",
|
||||
"code": "code_generator",
|
||||
"description": "自动生成CRUD代码,支持多种模板",
|
||||
"version": "1.0.0",
|
||||
"author": "FastApiAdmin",
|
||||
"icon": "https://service.fastapiadmin.com/api/v1/static/image/plugin/code.png",
|
||||
"category": "tool",
|
||||
"price": 0,
|
||||
"menu_path": "/tool/generator",
|
||||
"permission_prefix": "tool:generator",
|
||||
"sort": 1
|
||||
},
|
||||
{
|
||||
"name": "AI助手",
|
||||
"code": "ai_assistant",
|
||||
"description": "集成AI对话助手,支持智能问答",
|
||||
"version": "1.0.0",
|
||||
"author": "FastApiAdmin",
|
||||
"icon": "https://service.fastapiadmin.com/api/v1/static/image/plugin/ai.png",
|
||||
"category": "ai",
|
||||
"price": 9900,
|
||||
"menu_path": "/ai/assistant",
|
||||
"permission_prefix": "ai:assistant",
|
||||
"sort": 2
|
||||
},
|
||||
{
|
||||
"name": "系统监控",
|
||||
"code": "system_monitor",
|
||||
"description": "实时监控系统运行状态,CPU、内存、磁盘等",
|
||||
"version": "1.0.0",
|
||||
"author": "FastApiAdmin",
|
||||
"icon": "https://service.fastapiadmin.com/api/v1/static/image/plugin/monitor.png",
|
||||
"category": "monitor",
|
||||
"price": 0,
|
||||
"menu_path": "/monitor/system",
|
||||
"permission_prefix": "monitor:system",
|
||||
"sort": 3
|
||||
},
|
||||
{
|
||||
"name": "工作流引擎",
|
||||
"code": "workflow_engine",
|
||||
"description": "可视化工作流设计器,支持审批流程",
|
||||
"version": "1.0.0",
|
||||
"author": "FastApiAdmin",
|
||||
"icon": "https://service.fastapiadmin.com/api/v1/static/image/plugin/workflow.png",
|
||||
"category": "business",
|
||||
"price": 19900,
|
||||
"menu_path": "/workflow/design",
|
||||
"permission_prefix": "workflow:design",
|
||||
"sort": 4
|
||||
},
|
||||
{
|
||||
"name": "数据大屏",
|
||||
"code": "data_dashboard",
|
||||
"description": "可视化数据大屏,支持多种图表",
|
||||
"version": "1.0.0",
|
||||
"author": "FastApiAdmin",
|
||||
"icon": "https://service.fastapiadmin.com/api/v1/static/image/plugin/dashboard.png",
|
||||
"category": "business",
|
||||
"price": 4900,
|
||||
"menu_path": "/dashboard/data",
|
||||
"permission_prefix": "dashboard:data",
|
||||
"sort": 5
|
||||
}
|
||||
]
|
||||
+6
-1
@@ -5,6 +5,11 @@
|
||||
"status": "0",
|
||||
"description": "平台默认租户,id 固定为 1",
|
||||
"start_time": null,
|
||||
"end_time": null
|
||||
"end_time": null,
|
||||
"package_id": null,
|
||||
"max_users": 9999,
|
||||
"max_roles": 999,
|
||||
"max_storage_mb": 99999,
|
||||
"max_depts": 999
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1,29 @@
|
||||
[
|
||||
{
|
||||
"title": "系统登录页面优化建议",
|
||||
"ticket_content": "<p>建议在登录页面增加记住密码功能和第三方登录入口,提升用户体验。</p>",
|
||||
"summary": "建议在登录页面增加记住密码功能和第三方登录入口",
|
||||
"ticket_type": "suggestion",
|
||||
"status": "2",
|
||||
"tenant_id": 1,
|
||||
"description": "用户体验优化"
|
||||
},
|
||||
{
|
||||
"title": "表格导出功能异常",
|
||||
"ticket_content": "<p>当数据量超过1000条时,导出Excel功能会超时失败。</p>",
|
||||
"summary": "数据量超过1000条导出Excel超时",
|
||||
"ticket_type": "bug",
|
||||
"status": "1",
|
||||
"tenant_id": 1,
|
||||
"description": "导出功能问题"
|
||||
},
|
||||
{
|
||||
"title": "希望增加批量删除功能",
|
||||
"ticket_content": "<p>用户管理页面希望支持批量选择删除,提高管理效率。</p>",
|
||||
"summary": "用户管理页面希望支持批量选择删除",
|
||||
"ticket_type": "optimize",
|
||||
"status": "0",
|
||||
"tenant_id": 1,
|
||||
"description": "功能优化建议"
|
||||
}
|
||||
]
|
||||
@@ -4,12 +4,79 @@
|
||||
"code": "GROUP",
|
||||
"order": 1,
|
||||
"status": "0",
|
||||
"leader": "部门负责人",
|
||||
"phone": "1582112620",
|
||||
"email": "deptadmin@example.com",
|
||||
"description": "集团总公司",
|
||||
"leader": "张总",
|
||||
"phone": "13800138000",
|
||||
"email": "ceo@example.com",
|
||||
"description": "集团总部",
|
||||
"parent_id": null,
|
||||
"tenant_id": 1,
|
||||
"children": []
|
||||
"children": [
|
||||
{
|
||||
"name": "技术研发部",
|
||||
"code": "TECH",
|
||||
"order": 1,
|
||||
"status": "0",
|
||||
"leader": "李工",
|
||||
"phone": "13800138001",
|
||||
"email": "tech@example.com",
|
||||
"description": "负责技术研发",
|
||||
"parent_id": null,
|
||||
"tenant_id": 1,
|
||||
"children": [
|
||||
{
|
||||
"name": "后端开发组",
|
||||
"code": "BACKEND",
|
||||
"order": 1,
|
||||
"status": "0",
|
||||
"leader": "王工",
|
||||
"phone": "13800138002",
|
||||
"email": "backend@example.com",
|
||||
"description": "后端技术开发",
|
||||
"parent_id": null,
|
||||
"tenant_id": 1,
|
||||
"children": []
|
||||
},
|
||||
{
|
||||
"name": "前端开发组",
|
||||
"code": "FRONTEND",
|
||||
"order": 2,
|
||||
"status": "0",
|
||||
"leader": "陈工",
|
||||
"phone": "13800138003",
|
||||
"email": "frontend@example.com",
|
||||
"description": "前端技术开发",
|
||||
"parent_id": null,
|
||||
"tenant_id": 1,
|
||||
"children": []
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "产品运营部",
|
||||
"code": "PRODUCT",
|
||||
"order": 2,
|
||||
"status": "0",
|
||||
"leader": "赵经理",
|
||||
"phone": "13800138004",
|
||||
"email": "product@example.com",
|
||||
"description": "产品与运营",
|
||||
"parent_id": null,
|
||||
"tenant_id": 1,
|
||||
"children": []
|
||||
},
|
||||
{
|
||||
"name": "人力资源部",
|
||||
"code": "HR",
|
||||
"order": 3,
|
||||
"status": "0",
|
||||
"leader": "刘经理",
|
||||
"phone": "13800138005",
|
||||
"email": "hr@example.com",
|
||||
"description": "人事管理",
|
||||
"parent_id": null,
|
||||
"tenant_id": 1,
|
||||
"children": []
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
[
|
||||
{
|
||||
"notice_title": "系统上线公告",
|
||||
"notice_content": "<p>欢迎使用 FastApiAdmin 系统!</p><p>这是一个功能强大的权限管理系统,支持多租户、角色权限控制等功能。</p>",
|
||||
"notice_type": "2",
|
||||
"status": "0",
|
||||
"description": "系统上线公告",
|
||||
"tenant_id": 1
|
||||
},
|
||||
{
|
||||
"notice_title": "系统维护通知",
|
||||
"notice_content": "<p>系统将于本周六凌晨2:00-4:00进行例行维护,请提前保存工作。</p>",
|
||||
"notice_type": "1",
|
||||
"status": "0",
|
||||
"description": "系统维护通知",
|
||||
"tenant_id": 1
|
||||
},
|
||||
{
|
||||
"notice_title": "新功能发布",
|
||||
"notice_content": "<p>本次更新新增了工作流引擎、代码生成器等功能,欢迎体验!</p>",
|
||||
"notice_type": "2",
|
||||
"status": "0",
|
||||
"description": "新功能发布",
|
||||
"tenant_id": 1
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1,41 @@
|
||||
[
|
||||
{
|
||||
"request_path": "/api/v1/auth/login",
|
||||
"request_method": "POST",
|
||||
"request_payload": "{\"username\": \"admin\", \"password\": \"******\"}",
|
||||
"request_ip": "192.168.1.100",
|
||||
"request_os": "Windows 10",
|
||||
"request_browser": "Chrome 120.0",
|
||||
"response_code": 200,
|
||||
"response_json": "{\"code\": 200, \"message\": \"登录成功\"}",
|
||||
"process_time": "0.125s",
|
||||
"tenant_id": 1,
|
||||
"created_id": 1
|
||||
},
|
||||
{
|
||||
"request_path": "/api/v1/user/list",
|
||||
"request_method": "GET",
|
||||
"request_payload": null,
|
||||
"request_ip": "192.168.1.100",
|
||||
"request_os": "Windows 10",
|
||||
"request_browser": "Chrome 120.0",
|
||||
"response_code": 200,
|
||||
"response_json": "{\"code\": 200, \"data\": [...]}",
|
||||
"process_time": "0.052s",
|
||||
"tenant_id": 1,
|
||||
"created_id": 1
|
||||
},
|
||||
{
|
||||
"request_path": "/api/v1/role/create",
|
||||
"request_method": "POST",
|
||||
"request_payload": "{\"name\": \"测试角色\", \"code\": \"TEST\"}",
|
||||
"request_ip": "192.168.1.101",
|
||||
"request_os": "macOS 14.0",
|
||||
"request_browser": "Safari 17.0",
|
||||
"response_code": 200,
|
||||
"response_json": "{\"code\": 200, \"message\": \"创建成功\"}",
|
||||
"process_time": "0.089s",
|
||||
"tenant_id": 1,
|
||||
"created_id": 2
|
||||
}
|
||||
]
|
||||
@@ -5,25 +5,25 @@
|
||||
"config_value": "false",
|
||||
"config_type": true,
|
||||
"status": "0",
|
||||
"description": "初始化数据",
|
||||
"description": "是否启用演示模式",
|
||||
"tenant_id": 1
|
||||
},
|
||||
{
|
||||
"config_name": "演示访问IP白名单",
|
||||
"config_key": "ip_white_list",
|
||||
"config_value": "[\"127.0.0.1\"]",
|
||||
"config_value": "[\"127.0.0.1\", \"::1\"]",
|
||||
"config_type": true,
|
||||
"status": "0",
|
||||
"description": "初始化数据",
|
||||
"description": "演示模式下允许访问的IP列表",
|
||||
"tenant_id": 1
|
||||
},
|
||||
{
|
||||
"config_name": "接口白名单",
|
||||
"config_key": "white_api_list_path",
|
||||
"config_value": "[\"/api/v1/system/auth/login\", \"/api/v1/system/auth/token/refresh\", \"/api/v1/system/auth/captcha/get\", \"/api/v1/system/auth/logout\", \"/api/v1/system/config/info\", \"/api/v1/system/user/current/info\", \"/api/v1/system/notice/available\", \"/api/v1/system/auth/auto-login/users\", \"/api/v1/system/auth/auto-login/token\", \"/api/v1/system/auth/auto-login\"]",
|
||||
"config_value": "[\"/api/v1/system/auth/login\", \"/api/v1/system/auth/token/refresh\", \"/api/v1/system/auth/captcha/get\", \"/api/v1/system/auth/logout\", \"/api/v1/system/config/info\", \"/api/v1/system/user/current/info\", \"/api/v1/system/notice/available\", \"/api/v1/system/auth/auto-login/users\", \"/api/v1/system/auth/auto-login/token\", \"/api/v1/system/auth/auto-login\", \"/common/health\", \"/common/health/ready\", \"/common/health/live\", \"/metrics\"]",
|
||||
"config_type": true,
|
||||
"status": "0",
|
||||
"description": "初始化数据",
|
||||
"description": "无需登录即可访问的接口列表",
|
||||
"tenant_id": 1
|
||||
},
|
||||
{
|
||||
@@ -32,7 +32,115 @@
|
||||
"config_value": "[]",
|
||||
"config_type": true,
|
||||
"status": "0",
|
||||
"description": "初始化数据",
|
||||
"description": "禁止访问的IP列表",
|
||||
"tenant_id": 1
|
||||
},
|
||||
{
|
||||
"config_name": "登录失败次数限制",
|
||||
"config_key": "login_failed_limit",
|
||||
"config_value": "5",
|
||||
"config_type": true,
|
||||
"status": "0",
|
||||
"description": "登录失败最大次数",
|
||||
"tenant_id": 1
|
||||
},
|
||||
{
|
||||
"config_name": "登录锁定时间(分钟)",
|
||||
"config_key": "login_lock_time",
|
||||
"config_value": "15",
|
||||
"config_type": true,
|
||||
"status": "0",
|
||||
"description": "登录失败后锁定时间",
|
||||
"tenant_id": 1
|
||||
},
|
||||
{
|
||||
"config_name": "Token过期时间(分钟)",
|
||||
"config_key": "token_expire_minutes",
|
||||
"config_value": "120",
|
||||
"config_type": true,
|
||||
"status": "0",
|
||||
"description": "Access Token过期时间",
|
||||
"tenant_id": 1
|
||||
},
|
||||
{
|
||||
"config_name": "Refresh Token过期时间(天)",
|
||||
"config_key": "refresh_token_expire_days",
|
||||
"config_value": "7",
|
||||
"config_type": true,
|
||||
"status": "0",
|
||||
"description": "Refresh Token过期时间",
|
||||
"tenant_id": 1
|
||||
},
|
||||
{
|
||||
"config_name": "密码有效期(天)",
|
||||
"config_key": "password_expire_days",
|
||||
"config_value": "90",
|
||||
"config_type": true,
|
||||
"status": "0",
|
||||
"description": "密码有效期",
|
||||
"tenant_id": 1
|
||||
},
|
||||
{
|
||||
"config_name": "密码最小长度",
|
||||
"config_key": "password_min_length",
|
||||
"config_value": "6",
|
||||
"config_type": true,
|
||||
"status": "0",
|
||||
"description": "密码最小长度",
|
||||
"tenant_id": 1
|
||||
},
|
||||
{
|
||||
"config_name": "是否启用验证码",
|
||||
"config_key": "captcha_enable",
|
||||
"config_value": "true",
|
||||
"config_type": true,
|
||||
"status": "0",
|
||||
"description": "登录时是否启用验证码",
|
||||
"tenant_id": 1
|
||||
},
|
||||
{
|
||||
"config_name": "是否记录操作日志",
|
||||
"config_key": "operation_log_enable",
|
||||
"config_value": "true",
|
||||
"config_type": true,
|
||||
"status": "0",
|
||||
"description": "是否记录用户操作日志",
|
||||
"tenant_id": 1
|
||||
},
|
||||
{
|
||||
"config_name": "操作日志保留天数",
|
||||
"config_key": "operation_log_retention_days",
|
||||
"config_value": "90",
|
||||
"config_type": true,
|
||||
"status": "0",
|
||||
"description": "操作日志保留天数",
|
||||
"tenant_id": 1
|
||||
},
|
||||
{
|
||||
"config_name": "登录日志保留天数",
|
||||
"config_key": "login_log_retention_days",
|
||||
"config_value": "30",
|
||||
"config_type": true,
|
||||
"status": "0",
|
||||
"description": "登录日志保留天数",
|
||||
"tenant_id": 1
|
||||
},
|
||||
{
|
||||
"config_name": "文件上传大小限制(MB)",
|
||||
"config_key": "file_upload_max_size",
|
||||
"config_value": "50",
|
||||
"config_type": true,
|
||||
"status": "0",
|
||||
"description": "单个文件上传最大大小",
|
||||
"tenant_id": 1
|
||||
},
|
||||
{
|
||||
"config_name": "是否启用IP归属地查询",
|
||||
"config_key": "ip_location_enable",
|
||||
"config_value": "false",
|
||||
"config_type": true,
|
||||
"status": "0",
|
||||
"description": "登录时是否查询IP归属地",
|
||||
"tenant_id": 1
|
||||
}
|
||||
]
|
||||
]
|
||||
|
||||
@@ -0,0 +1,50 @@
|
||||
[
|
||||
{
|
||||
"name": "技术总监",
|
||||
"code": "TECH_DIRECTOR",
|
||||
"order": 1,
|
||||
"status": "0",
|
||||
"description": "技术部门负责人",
|
||||
"tenant_id": 1
|
||||
},
|
||||
{
|
||||
"name": "高级工程师",
|
||||
"code": "SR_ENGINEER",
|
||||
"order": 2,
|
||||
"status": "0",
|
||||
"description": "高级技术岗位",
|
||||
"tenant_id": 1
|
||||
},
|
||||
{
|
||||
"name": "工程师",
|
||||
"code": "ENGINEER",
|
||||
"order": 3,
|
||||
"status": "0",
|
||||
"description": "技术岗位",
|
||||
"tenant_id": 1
|
||||
},
|
||||
{
|
||||
"name": "产品经理",
|
||||
"code": "PRODUCT_MANAGER",
|
||||
"order": 4,
|
||||
"status": "0",
|
||||
"description": "产品管理岗位",
|
||||
"tenant_id": 1
|
||||
},
|
||||
{
|
||||
"name": "运营专员",
|
||||
"code": "OPERATOR",
|
||||
"order": 5,
|
||||
"status": "0",
|
||||
"description": "运营岗位",
|
||||
"tenant_id": 1
|
||||
},
|
||||
{
|
||||
"name": "HR专员",
|
||||
"code": "HR_STAFF",
|
||||
"order": 6,
|
||||
"status": "0",
|
||||
"description": "人事专员",
|
||||
"tenant_id": 1
|
||||
}
|
||||
]
|
||||
@@ -1,11 +1,29 @@
|
||||
[
|
||||
{
|
||||
"name": "管理员角色",
|
||||
"code": "ADMIN",
|
||||
"name": "超级管理员",
|
||||
"code": "SUPER_ADMIN",
|
||||
"status": "0",
|
||||
"order": 1,
|
||||
"data_scope": 4,
|
||||
"description": "初始化角色",
|
||||
"description": "拥有系统最高权限",
|
||||
"tenant_id": 1
|
||||
},
|
||||
{
|
||||
"name": "管理员",
|
||||
"code": "ADMIN",
|
||||
"status": "0",
|
||||
"order": 2,
|
||||
"data_scope": 3,
|
||||
"description": "管理租户内所有资源",
|
||||
"tenant_id": 1
|
||||
},
|
||||
{
|
||||
"name": "普通用户",
|
||||
"code": "USER",
|
||||
"status": "0",
|
||||
"order": 3,
|
||||
"data_scope": 1,
|
||||
"description": "仅能查看和操作自己的数据",
|
||||
"tenant_id": 1
|
||||
}
|
||||
]
|
||||
|
||||
@@ -4,8 +4,8 @@
|
||||
"username": "super",
|
||||
"password": "$2b$12$e2IJgS/cvHgJ0H3G7Xa08OXoXnk6N/NX3IZRtubBDElA0VLZhkNOa",
|
||||
"name": "超级管理员",
|
||||
"mobile": null,
|
||||
"email": null,
|
||||
"mobile": "13800138000",
|
||||
"email": "super@example.com",
|
||||
"gender": "0",
|
||||
"avatar": "https://service.fastapiadmin.com/api/v1/static/image/avatar.png",
|
||||
"is_superuser": true,
|
||||
@@ -16,7 +16,7 @@
|
||||
"qq_login": null,
|
||||
"dept_id": 1,
|
||||
"status": "0",
|
||||
"description": "超级管理员",
|
||||
"description": "系统超级管理员",
|
||||
"created_id": null,
|
||||
"updated_id": null
|
||||
},
|
||||
@@ -25,29 +25,8 @@
|
||||
"username": "admin",
|
||||
"password": "$2b$12$e2IJgS/cvHgJ0H3G7Xa08OXoXnk6N/NX3IZRtubBDElA0VLZhkNOa",
|
||||
"name": "管理员",
|
||||
"mobile": null,
|
||||
"email": null,
|
||||
"gender": "0",
|
||||
"avatar": "https://service.fastapiadmin.com/api/v1/static/image/avatar.png",
|
||||
"is_superuser": true,
|
||||
"last_login": null,
|
||||
"gitee_login": null,
|
||||
"github_login": null,
|
||||
"wx_login": null,
|
||||
"qq_login": null,
|
||||
"dept_id": 1,
|
||||
"status": "0",
|
||||
"description": "管理员",
|
||||
"created_id": null,
|
||||
"updated_id": null
|
||||
},
|
||||
{
|
||||
"tenant_id": 1,
|
||||
"username": "user",
|
||||
"password": "$2b$12$e2IJgS/cvHgJ0H3G7Xa08OXoXnk6N/NX3IZRtubBDElA0VLZhkNOa",
|
||||
"name": "普通用户",
|
||||
"mobile": null,
|
||||
"email": null,
|
||||
"mobile": "13800138001",
|
||||
"email": "admin@example.com",
|
||||
"gender": "0",
|
||||
"avatar": "https://service.fastapiadmin.com/api/v1/static/image/avatar.png",
|
||||
"is_superuser": false,
|
||||
@@ -56,10 +35,73 @@
|
||||
"github_login": null,
|
||||
"wx_login": null,
|
||||
"qq_login": null,
|
||||
"dept_id": 1,
|
||||
"dept_id": 2,
|
||||
"status": "0",
|
||||
"description": "普通用户",
|
||||
"created_id": null,
|
||||
"description": "技术部门管理员",
|
||||
"created_id": 1,
|
||||
"updated_id": null
|
||||
},
|
||||
{
|
||||
"tenant_id": 1,
|
||||
"username": "user",
|
||||
"password": "$2b$12$e2IJgS/cvHgJ0H3G7Xa08OXoXnk6N/NX3IZRtubBDElA0VLZhkNOa",
|
||||
"name": "普通用户",
|
||||
"mobile": "13800138002",
|
||||
"email": "user@example.com",
|
||||
"gender": "0",
|
||||
"avatar": "https://service.fastapiadmin.com/api/v1/static/image/avatar.png",
|
||||
"is_superuser": false,
|
||||
"last_login": null,
|
||||
"gitee_login": null,
|
||||
"github_login": null,
|
||||
"wx_login": null,
|
||||
"qq_login": null,
|
||||
"dept_id": 3,
|
||||
"status": "0",
|
||||
"description": "后端开发工程师",
|
||||
"created_id": 1,
|
||||
"updated_id": null
|
||||
},
|
||||
{
|
||||
"tenant_id": 1,
|
||||
"username": "product",
|
||||
"password": "$2b$12$e2IJgS/cvHgJ0H3G7Xa08OXoXnk6N/NX3IZRtubBDElA0VLZhkNOa",
|
||||
"name": "产品经理",
|
||||
"mobile": "13800138003",
|
||||
"email": "product@example.com",
|
||||
"gender": "1",
|
||||
"avatar": "https://service.fastapiadmin.com/api/v1/static/image/avatar.png",
|
||||
"is_superuser": false,
|
||||
"last_login": null,
|
||||
"gitee_login": null,
|
||||
"github_login": null,
|
||||
"wx_login": null,
|
||||
"qq_login": null,
|
||||
"dept_id": 5,
|
||||
"status": "0",
|
||||
"description": "产品经理",
|
||||
"created_id": 1,
|
||||
"updated_id": null
|
||||
},
|
||||
{
|
||||
"tenant_id": 1,
|
||||
"username": "hr",
|
||||
"password": "$2b$12$e2IJgS/cvHgJ0H3G7Xa08OXoXnk6N/NX3IZRtubBDElA0VLZhkNOa",
|
||||
"name": "HR专员",
|
||||
"mobile": "13800138004",
|
||||
"email": "hr@example.com",
|
||||
"gender": "1",
|
||||
"avatar": "https://service.fastapiadmin.com/api/v1/static/image/avatar.png",
|
||||
"is_superuser": false,
|
||||
"last_login": null,
|
||||
"gitee_login": null,
|
||||
"github_login": null,
|
||||
"wx_login": null,
|
||||
"qq_login": null,
|
||||
"dept_id": 6,
|
||||
"status": "0",
|
||||
"description": "人力资源专员",
|
||||
"created_id": 1,
|
||||
"updated_id": null
|
||||
}
|
||||
]
|
||||
]
|
||||
|
||||
@@ -2,5 +2,21 @@
|
||||
{
|
||||
"user_id": 1,
|
||||
"role_id": 1
|
||||
},
|
||||
{
|
||||
"user_id": 2,
|
||||
"role_id": 2
|
||||
},
|
||||
{
|
||||
"user_id": 3,
|
||||
"role_id": 3
|
||||
},
|
||||
{
|
||||
"user_id": 4,
|
||||
"role_id": 3
|
||||
},
|
||||
{
|
||||
"user_id": 5,
|
||||
"role_id": 3
|
||||
}
|
||||
]
|
||||
]
|
||||
|
||||
Reference in New Issue
Block a user