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:
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user