audit.py 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  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. bearer_auth_required,
  9. )
  10. from dms.services.audit_query_service import (
  11. action_statistics,
  12. active_user_statistics,
  13. audit_log_page,
  14. document_statistics,
  15. trend_statistics,
  16. )
  17. @api_v1.get("/audit/logs")
  18. @bearer_auth_required
  19. @admin_required
  20. def audit_logs_route():
  21. return success_response(audit_log_page(request.args))
  22. @api_v1.get("/statistics/documents")
  23. @bearer_auth_required
  24. @admin_required
  25. def document_statistics_route():
  26. return success_response(document_statistics(request.args))
  27. @api_v1.get("/audit/statistics/trend")
  28. @bearer_auth_required
  29. @admin_required
  30. def audit_trend_statistics_route():
  31. return success_response(trend_statistics(request.args))
  32. @api_v1.get("/audit/statistics/actions")
  33. @bearer_auth_required
  34. @admin_required
  35. def audit_action_statistics_route():
  36. return success_response(action_statistics(request.args))
  37. @api_v1.get("/audit/statistics/users")
  38. @bearer_auth_required
  39. @admin_required
  40. def audit_active_user_statistics_route():
  41. return success_response(active_user_statistics(request.args))