新增用户管理/角色管理/菜单管理功能,修复创作流水线研究脚本

- 用户管理:新增编辑弹窗(修改用户名/角色/密码),增加组织/创建时间/最后登录列
- 角色管理:新增 Role 模型 + CRUD API,admin.html 新增角色管理 tab
- 菜单管理:新增 Menu 模型 + CRUD API,导航栏从 API 动态加载菜单项
- 个人中心:右上角下拉菜单(个人信息/修改密码/退出),新增修改密码 API
- 种子数据:initial_data.py 自动创建默认角色(admin/editor)和默认菜单(7项)
- 修复 research.py 缺少 enrich_topic_research 函数导致导入失败
- 修复 db_helper.py 中 generated_at 条件导致重创作不更新时间戳
- admin.html 操作列加宽防止按钮换行,平台配置增加删除按钮
- articles.html 预览弹窗加 lock-scroll=false 防止页面尺寸跳动
This commit is contained in:
Yuzhiran Dev
2026-05-22 18:34:27 +08:00
parent 1855f190f5
commit b2d043b231
14 changed files with 811 additions and 139 deletions
+60
View File
@@ -389,11 +389,18 @@ class UserUpdate(BaseModel):
class UserResponse(UserBase):
id: int
org_id: Optional[str] = None
last_login: Optional[datetime] = None
created_at: Optional[datetime] = None
updated_at: Optional[datetime] = None
model_config = ConfigDict(from_attributes=True)
class ChangePasswordRequest(BaseModel):
old_password: str
new_password: str
class LoginRequest(BaseModel):
username: str
password: str
@@ -545,3 +552,56 @@ class SystemStatus(BaseModel):
execution_time: Optional[float] = None
class RoleBase(BaseModel):
name: str
description: str = ""
is_system: bool = False
class RoleCreate(RoleBase):
pass
class RoleUpdate(BaseModel):
name: Optional[str] = None
description: Optional[str] = None
class RoleResponse(RoleBase):
id: int
created_at: Optional[datetime] = None
model_config = ConfigDict(from_attributes=True)
class MenuBase(BaseModel):
parent_id: Optional[int] = None
name: str
path: str
icon: str = ""
sort_order: int = 0
roles: List[str] = []
is_active: bool = True
class MenuCreate(MenuBase):
pass
class MenuUpdate(BaseModel):
parent_id: Optional[int] = None
name: Optional[str] = None
path: Optional[str] = None
icon: Optional[str] = None
sort_order: Optional[int] = None
roles: Optional[List[str]] = None
is_active: Optional[bool] = None
class MenuResponse(MenuBase):
id: int
created_at: Optional[datetime] = None
model_config = ConfigDict(from_attributes=True)