audit.py 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. """审计日志与统计只读 HTTP 接口。"""
  2. from __future__ import annotations
  3. from flask import request
  4. from dms.api.v1.blueprint import api_v1
  5. from dms.common.response import success_response
  6. from dms.security.decorators import (
  7. admin_required,
  8. auditor_required,
  9. bearer_auth_required,
  10. )
  11. from dms.services.audit_query_service import (
  12. action_statistics,
  13. active_user_statistics,
  14. audit_log_page,
  15. document_statistics,
  16. trend_statistics,
  17. )
  18. @api_v1.get("/audit/logs")
  19. @bearer_auth_required
  20. @auditor_required
  21. def audit_logs_route():
  22. return success_response(audit_log_page(request.args))
  23. @api_v1.get("/statistics/documents")
  24. @bearer_auth_required
  25. @admin_required
  26. def document_statistics_route():
  27. return success_response(document_statistics(request.args))
  28. @api_v1.get("/audit/statistics/trend")
  29. @bearer_auth_required
  30. @auditor_required
  31. def audit_trend_statistics_route():
  32. return success_response(trend_statistics(request.args))
  33. @api_v1.get("/audit/statistics/actions")
  34. @bearer_auth_required
  35. @auditor_required
  36. def audit_action_statistics_route():
  37. return success_response(action_statistics(request.args))
  38. @api_v1.get("/audit/statistics/users")
  39. @bearer_auth_required
  40. @auditor_required
  41. def audit_active_user_statistics_route():
  42. return success_response(active_user_statistics(request.args))