mirror of
https://github.com/jazzband/django-axes.git
synced 2026-03-16 22:30:23 +00:00
Only do the work in the middleware if axes is enabled.
This commit is contained in:
parent
23ca162097
commit
146d7a20b7
2 changed files with 22 additions and 12 deletions
|
|
@ -42,19 +42,20 @@ class AxesMiddleware:
|
|||
def __call__(self, request):
|
||||
response = self.get_response(request)
|
||||
|
||||
if "rest_framework" in settings.INSTALLED_APPS:
|
||||
AxesProxyHandler.update_request(request)
|
||||
username = get_client_username(request)
|
||||
credentials = get_credentials(username)
|
||||
failures_since_start = AxesProxyHandler.get_failures(request, credentials)
|
||||
if (
|
||||
settings.AXES_LOCK_OUT_AT_FAILURE
|
||||
and failures_since_start >= get_failure_limit(request, credentials)
|
||||
):
|
||||
if settings.AXES_ENABLED:
|
||||
if "rest_framework" in settings.INSTALLED_APPS:
|
||||
AxesProxyHandler.update_request(request)
|
||||
username = get_client_username(request)
|
||||
credentials = get_credentials(username)
|
||||
failures_since_start = AxesProxyHandler.get_failures(request, credentials)
|
||||
if (
|
||||
settings.AXES_LOCK_OUT_AT_FAILURE
|
||||
and failures_since_start >= get_failure_limit(request, credentials)
|
||||
):
|
||||
|
||||
request.axes_locked_out = True
|
||||
request.axes_locked_out = True
|
||||
|
||||
if getattr(request, "axes_locked_out", None):
|
||||
response = get_lockout_response(request) # type: ignore
|
||||
if getattr(request, "axes_locked_out", None):
|
||||
response = get_lockout_response(request) # type: ignore
|
||||
|
||||
return response
|
||||
|
|
|
|||
|
|
@ -31,6 +31,15 @@ class MiddlewareTestCase(AxesTestCase):
|
|||
response = AxesMiddleware(get_response)(self.request)
|
||||
self.assertEqual(response.status_code, self.STATUS_LOCKOUT)
|
||||
|
||||
@override_settings(AXES_ENABLED=False)
|
||||
def test_respects_enabled_switch(self):
|
||||
def get_response(request):
|
||||
request.axes_locked_out = True
|
||||
return HttpResponse()
|
||||
|
||||
response = AxesMiddleware(get_response)(self.request)
|
||||
self.assertEqual(response.status_code, self.STATUS_SUCCESS)
|
||||
|
||||
@mock.patch("django.conf.settings.INSTALLED_APPS", ["rest_framework"])
|
||||
def test_response_contains_required_attrs_with_drf_integration(self):
|
||||
def get_response(request):
|
||||
|
|
|
|||
Loading…
Reference in a new issue