feat(models): add org_id to Article, PublishRecord, ContentMetrics, SearchRanking, GeoReadinessScore

- Add org_id column to 5 models with default='default'
- Update to_dict() methods for ContentMetrics, SearchRanking, GeoReadinessScore
- Add ALTER TABLE migrations in database.py init_db()
- Add org_id to 6 Pydantic response schemas
- Add require_role() helper factory in auth.py
This commit is contained in:
Yuzhiran Dev
2026-06-17 14:27:27 +08:00
parent 00431c827b
commit dcfeccc97b
6 changed files with 42 additions and 3 deletions
+10
View File
@@ -160,6 +160,16 @@ def get_current_admin(current_user: User = Depends(get_current_user)) -> User:
if current_user.role != "admin":
raise HTTPException(status_code=403, detail="需要管理员权限")
return current_user
def require_role(required_role: str):
"""依赖项工厂:返回一个 FastAPI 依赖项,要求当前用户拥有指定角色。
管理员自动拥有所有角色权限。"""
def role_checker(current_user: User = Depends(get_current_user)):
if current_user.role != required_role and current_user.role != "admin":
raise HTTPException(status_code=403, detail=f"需要{required_role}角色权限")
return current_user
return role_checker
@router.get("/me")
def get_me(
request: Request,