admin.py 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. from django.contrib import admin
  2. from django.utils.translation import gettext_lazy as _
  3. from axes.conf import settings
  4. from axes.models import AccessAttempt, AccessLog
  5. class AccessAttemptAdmin(admin.ModelAdmin):
  6. list_display = (
  7. "attempt_time",
  8. "ip_address",
  9. "user_agent",
  10. "username",
  11. "path_info",
  12. "failures_since_start",
  13. )
  14. list_filter = ["attempt_time", "path_info"]
  15. search_fields = ["ip_address", "username", "user_agent", "path_info"]
  16. date_hierarchy = "attempt_time"
  17. fieldsets = (
  18. (None, {"fields": ("path_info", "failures_since_start")}),
  19. (_("Form Data"), {"fields": ("get_data", "post_data")}),
  20. (_("Meta Data"), {"fields": ("user_agent", "ip_address", "http_accept")}),
  21. )
  22. readonly_fields = [
  23. "user_agent",
  24. "ip_address",
  25. "username",
  26. "http_accept",
  27. "path_info",
  28. "attempt_time",
  29. "get_data",
  30. "post_data",
  31. "failures_since_start",
  32. ]
  33. def has_add_permission(self, request):
  34. return False
  35. class AccessLogAdmin(admin.ModelAdmin):
  36. list_display = (
  37. "attempt_time",
  38. "logout_time",
  39. "ip_address",
  40. "username",
  41. "user_agent",
  42. "path_info",
  43. )
  44. list_filter = ["attempt_time", "logout_time", "path_info"]
  45. search_fields = ["ip_address", "user_agent", "username", "path_info"]
  46. date_hierarchy = "attempt_time"
  47. fieldsets = (
  48. (None, {"fields": ("path_info",)}),
  49. (_("Meta Data"), {"fields": ("user_agent", "ip_address", "http_accept")}),
  50. )
  51. readonly_fields = [
  52. "user_agent",
  53. "ip_address",
  54. "username",
  55. "http_accept",
  56. "path_info",
  57. "attempt_time",
  58. "logout_time",
  59. ]
  60. def has_add_permission(self, request):
  61. return False
  62. if settings.AXES_ENABLE_ADMIN:
  63. admin.site.register(AccessAttempt, AccessAttemptAdmin)
  64. admin.site.register(AccessLog, AccessLogAdmin)