```
feat(auth): 添加用户权限获取接口并完善JWT令牌角色信息 - 在JWT令牌中添加用户角色信息 - 新增get_my_permissions接口用于获取当前用户权限码列表 - 重构认证回调逻辑,增加错误日志记录 - 更新用户信息获取接口使用Authorization头验证 ```
This commit is contained in:
@@ -0,0 +1,62 @@
|
||||
"""审计日志 Celery 任务"""
|
||||
import traceback
|
||||
from app.core.celery_app import celery_app
|
||||
from app.core.database import SessionLocal
|
||||
|
||||
|
||||
@celery_app.task(queue='h3c_onu_ms', ignore_result=True)
|
||||
def create_audit_log_task(
|
||||
user_id: str,
|
||||
username: str,
|
||||
user_role: str,
|
||||
method: str,
|
||||
path: str,
|
||||
ip_address: str,
|
||||
user_agent: str,
|
||||
status_code: int,
|
||||
request_params: dict = None,
|
||||
response_data: dict = None,
|
||||
error_message: str = None,
|
||||
description: str = None,
|
||||
resource_id: str = None,
|
||||
resource_name: str = None,
|
||||
):
|
||||
"""异步写入审计日志,不阻塞主请求流程"""
|
||||
from app.services.audit_service import write_audit_log
|
||||
db = SessionLocal()
|
||||
try:
|
||||
write_audit_log(
|
||||
db,
|
||||
user_id=user_id,
|
||||
username=username,
|
||||
user_role=user_role,
|
||||
method=method,
|
||||
path=path,
|
||||
ip_address=ip_address,
|
||||
user_agent=user_agent,
|
||||
status_code=status_code,
|
||||
request_params=request_params,
|
||||
response_data=response_data,
|
||||
error_message=error_message,
|
||||
description=description,
|
||||
resource_id=resource_id,
|
||||
resource_name=resource_name,
|
||||
)
|
||||
except Exception:
|
||||
pass # 审计日志失败不影响主业务
|
||||
finally:
|
||||
db.close()
|
||||
|
||||
|
||||
@celery_app.task(queue='h3c_onu_ms')
|
||||
def cleanup_audit_logs_task():
|
||||
"""清理90天前的审计日志(每天执行)"""
|
||||
from app.services.audit_service import cleanup_old_logs
|
||||
db = SessionLocal()
|
||||
try:
|
||||
deleted = cleanup_old_logs(db)
|
||||
return {'success': True, 'deleted': deleted}
|
||||
except Exception as e:
|
||||
return {'success': False, 'error': str(e), 'traceback': traceback.format_exc()}
|
||||
finally:
|
||||
db.close()
|
||||
Reference in New Issue
Block a user