fix(auth,audit): ensure display_name persists in token refresh and add fallback in audit log

This commit is contained in:
DXC
2026-03-25 11:16:13 +08:00
parent f9edb5f1f7
commit 46dd8f1c3a
5 changed files with 28 additions and 4 deletions

View File

@ -205,6 +205,17 @@ def audit_log(module: str, action: str = None, get_target_id_fn=None, get_target
username = claims.get('username', '')
display_name = claims.get('display_name', '')
# 兜底:如果 display_name 为空,查询数据库获取
if not display_name and user_id:
try:
from app.models.system import SysUser
user = SysUser.query.get(user_id)
if user:
user_info = user.to_dict()
display_name = user_info.get('display_name', username)
except Exception:
pass
# 获取IP
ip_address = request.headers.get('X-Forwarded-For') or request.remote_addr or ''
if ip_address and ',' in ip_address: