| 12345678910111213141516171819202122232425262728293031323334353637 |
- from django.conf import settings
- from django.contrib.auth import views as auth_views
- from axes.decorators import watch_login
- class FailedLoginMiddleware(object):
- def __init__(self, *args, **kwargs):
- super(FailedLoginMiddleware, self).__init__(*args, **kwargs)
- # watch the auth login
- auth_views.login = watch_login(auth_views.login)
- class ViewDecoratorMiddleware(object):
- """
- When the django_axes middleware is installed, by default it watches the
- django.auth.views.login.
- This middleware allows adding protection to other views without the need
- to change any urls or dectorate them manually.
- Add this middleware to your MIDDLEWARE settings after
- `axes.middleware.FailedLoginMiddleware` and before the django
- flatpages middleware.
- """
- watched_logins = getattr(
- settings, 'AXES_PROTECTED_LOGINS', (
- '/accounts/login/',
- )
- )
- def process_view(self, request, view_func, view_args, view_kwargs):
- if request.path in self.watched_logins:
- return watch_login(view_func)(request, *view_args, **view_kwargs)
- return None
|