conf.py 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. from django.conf import settings
  2. from django.utils.translation import gettext_lazy as _
  3. # disable plugin when set to False
  4. settings.AXES_ENABLED = getattr(settings, "AXES_ENABLED", True)
  5. # see if the user has overridden the failure limit
  6. settings.AXES_FAILURE_LIMIT = getattr(settings, "AXES_FAILURE_LIMIT", 3)
  7. # see if the user has set axes to lock out logins after failure limit
  8. settings.AXES_LOCK_OUT_AT_FAILURE = getattr(settings, "AXES_LOCK_OUT_AT_FAILURE", True)
  9. # lock out with the combination of username and IP address
  10. settings.AXES_LOCK_OUT_BY_COMBINATION_USER_AND_IP = getattr(
  11. settings, "AXES_LOCK_OUT_BY_COMBINATION_USER_AND_IP", False
  12. )
  13. # lock out with the username or IP address
  14. settings.AXES_LOCK_OUT_BY_USER_OR_IP = getattr(
  15. settings, "AXES_LOCK_OUT_BY_USER_OR_IP", False
  16. )
  17. # lock out with username and never the IP or user agent
  18. settings.AXES_ONLY_USER_FAILURES = getattr(settings, "AXES_ONLY_USER_FAILURES", False)
  19. # lock out just for admin site
  20. settings.AXES_ONLY_ADMIN_SITE = getattr(settings, "AXES_ONLY_ADMIN_SITE", False)
  21. # show Axes logs in admin
  22. settings.AXES_ENABLE_ADMIN = getattr(settings, "AXES_ENABLE_ADMIN", True)
  23. # lock out with the user agent, has no effect when ONLY_USER_FAILURES is set
  24. settings.AXES_USE_USER_AGENT = getattr(settings, "AXES_USE_USER_AGENT", False)
  25. # use a specific username field to retrieve from login POST data
  26. settings.AXES_USERNAME_FORM_FIELD = getattr(
  27. settings, "AXES_USERNAME_FORM_FIELD", "username"
  28. )
  29. # use a specific password field to retrieve from login POST data
  30. settings.AXES_PASSWORD_FORM_FIELD = getattr(
  31. settings, "AXES_PASSWORD_FORM_FIELD", "password"
  32. ) # noqa
  33. # use a provided callable to transform the POSTed username into the one used in credentials
  34. settings.AXES_USERNAME_CALLABLE = getattr(settings, "AXES_USERNAME_CALLABLE", None)
  35. # determine if given user should be always allowed to attempt authentication
  36. settings.AXES_WHITELIST_CALLABLE = getattr(settings, "AXES_WHITELIST_CALLABLE", None)
  37. # return custom lockout response if configured
  38. settings.AXES_LOCKOUT_CALLABLE = getattr(settings, "AXES_LOCKOUT_CALLABLE", None)
  39. # reset the number of failed attempts after one successful attempt
  40. settings.AXES_RESET_ON_SUCCESS = getattr(settings, "AXES_RESET_ON_SUCCESS", False)
  41. settings.AXES_DISABLE_ACCESS_LOG = getattr(settings, "AXES_DISABLE_ACCESS_LOG", False)
  42. settings.AXES_HANDLER = getattr(
  43. settings, "AXES_HANDLER", "axes.handlers.database.AxesDatabaseHandler"
  44. )
  45. settings.AXES_LOCKOUT_TEMPLATE = getattr(settings, "AXES_LOCKOUT_TEMPLATE", None)
  46. settings.AXES_LOCKOUT_URL = getattr(settings, "AXES_LOCKOUT_URL", None)
  47. settings.AXES_COOLOFF_TIME = getattr(settings, "AXES_COOLOFF_TIME", None)
  48. settings.AXES_VERBOSE = getattr(settings, "AXES_VERBOSE", True)
  49. # whitelist and blacklist
  50. settings.AXES_NEVER_LOCKOUT_WHITELIST = getattr(
  51. settings, "AXES_NEVER_LOCKOUT_WHITELIST", False
  52. )
  53. settings.AXES_NEVER_LOCKOUT_GET = getattr(settings, "AXES_NEVER_LOCKOUT_GET", False)
  54. settings.AXES_ONLY_WHITELIST = getattr(settings, "AXES_ONLY_WHITELIST", False)
  55. settings.AXES_IP_WHITELIST = getattr(settings, "AXES_IP_WHITELIST", None)
  56. settings.AXES_IP_BLACKLIST = getattr(settings, "AXES_IP_BLACKLIST", None)
  57. # message to show when locked out and have cooloff enabled
  58. settings.AXES_COOLOFF_MESSAGE = getattr(
  59. settings,
  60. "AXES_COOLOFF_MESSAGE",
  61. _("Account locked: too many login attempts. Please try again later"),
  62. )
  63. # message to show when locked out and have cooloff disabled
  64. settings.AXES_PERMALOCK_MESSAGE = getattr(
  65. settings,
  66. "AXES_PERMALOCK_MESSAGE",
  67. _(
  68. "Account locked: too many login attempts. Contact an admin to unlock your account."
  69. ),
  70. )
  71. # if your deployment is using reverse proxies, set this value to 'left-most' or 'right-most' per your configuration
  72. settings.AXES_PROXY_ORDER = getattr(settings, "AXES_PROXY_ORDER", "left-most")
  73. # if your deployment is using reverse proxies, set this value to the number of proxies in front of Django
  74. settings.AXES_PROXY_COUNT = getattr(settings, "AXES_PROXY_COUNT", None)
  75. # if your deployment is using reverse proxies, set to your trusted proxy IP addresses prefixes if needed
  76. settings.AXES_PROXY_TRUSTED_IPS = getattr(settings, "AXES_PROXY_TRUSTED_IPS", None)
  77. # set to the names of request.META attributes that should be checked for the IP address of the client
  78. # if your deployment is using reverse proxies, ensure that the header attributes are securely set by the proxy
  79. # ensure that the client can not spoof the headers by setting them and sending them through the proxy
  80. settings.AXES_META_PRECEDENCE_ORDER = getattr(
  81. settings,
  82. "AXES_META_PRECEDENCE_ORDER",
  83. getattr(settings, "IPWARE_META_PRECEDENCE_ORDER", ("REMOTE_ADDR",)),
  84. )
  85. # set CORS allowed origins when calling authentication over ajax
  86. settings.AXES_ALLOWED_CORS_ORIGINS = getattr(settings, "AXES_ALLOWED_CORS_ORIGINS", "*")