Files
FastapiAdmin/backend/app/core/request_context.py
T
zhangtao 5ff72b086f refactor: 重构项目模块结构与代码细节优化
1.  调整后端模块路由与插件文件结构,迁移部分模块代码至api/v1目录
2.  优化代码注释格式与文档字符串,简化冗余代码
3.  添加监控仪表盘、工单评论等新模块功能
4.  修复前端部分组件交互逻辑与类型定义
5.  清理冗余的初始化数据与废弃配置文件
6.  新增租户注册表单字段与国际化支持
7.  优化HTTP请求拦截器与快捷键功能
2026-07-10 00:18:11 +08:00

49 lines
1.1 KiB
Python

from contextvars import ContextVar, Token
from dataclasses import dataclass
from typing import Any
# ── 日志注入 ──
_correlation_id: ContextVar[str] = ContextVar("correlation_id", default="")
def set_correlation_id(cid: str) -> Token:
return _correlation_id.set(cid)
def get_correlation_id() -> str:
return _correlation_id.get()
def reset_correlation_id(token: Token) -> None:
_correlation_id.reset(token)
# ── 租户上下文 ──
current_tenant_id: ContextVar[int | None] = ContextVar("current_tenant_id", default=None)
def set_current_tenant(tenant_id: int | None) -> None:
current_tenant_id.set(tenant_id)
def get_current_tenant_id() -> int | None:
return current_tenant_id.get()
def clear_current_tenant() -> None:
current_tenant_id.set(None)
# ── request.state.ctx ──
@dataclass
class RequestContext:
jwt_payload: Any = None
jwt_user_info: dict[str, Any] | None = None
session_id: str | None = None
user_id: int | None = None
user_username: str | None = None
session_info: dict[str, Any] | None = None
login_location: str | None = None