Appearance
Python System RBAC
路由:app/api/v1/system.py、app/api/v1/database.py
服务:app/services/system_service.py、app/services/database_init.py
API 前缀:/api/v1/system/*
RBAC 资源
| 资源 | 主要端点 | 权限示例 |
|---|---|---|
| Users | GET/POST /users,GET/PUT/DELETE /users/{id} | system:user:list/create/update/delete |
GET /users/export,POST /users/import | system:user:export/import | |
PUT /users/{id}/roles,PUT /users/{id}/posts | system:user:update | |
PUT /users/{id}/reset-password | system:user:resetPwd | |
| Roles | GET/POST /roles,GET/PUT/DELETE /roles/{id} | system:role:* |
PUT /roles/{id}/permissions,PUT /roles/{id}/depts | system:role:update | |
| Menus | GET/POST /menus,GET/PUT/DELETE /menus/{id} | system:menu:* |
| Permissions | GET/POST /permissions,GET/PUT/DELETE /permissions/{id} | system:permission:* |
列表接口支持 page / pageSize / keyword(权限、用户等)。
角色详情
GET /roles/{id} 返回 RoleDetailDto,含 deptIds、permissionIds(分配权限弹窗预填)。
数据权限
SystemUserService.list_users 通过 DataScopeService 按角色 data_scope 过滤(与 Java 一致)。见 Java 安全 — 数据权限。
数据库初始化
app/api/v1/database.py:
| 方法 | 路径 | 说明 |
|---|---|---|
| POST | /api/v1/system/database/init | 删表 → 建表 → seed → 重载调度器 |
实现:database_init.initialize_database()
SQL 来源:app/resources/db/drop.sql、schema.sql(内容与 contracts/sql/schema.sql 对齐,运行时读包内副本)。
受 DB_INIT_ALLOW_WEB 控制;无需登录(与 Java Security 白名单一致)。
种子数据
app/services/seed.py — 权限码、菜单(含 monitor 三项挂系统管理下)、字典 sys_page_size、参数 sys.page.defaultSize 等。已有用户时 seed_data() 直接 return。