Skip to main content

Django app that locks out users after too many failed login attempts until release time expires.

Tested on Django 1.4.5.

Requirements

  • Django

Installation

  1. Install python library using pip: pip install django-cerberus

  2. Add cerberus to INSTALLED_APPS in your Django settings file

  3. Sync your database

Usage

Add cerberus.decorators.watch_logins decorator to your login view. Example:

class LoginView(FormView):
    template_name = 'example/login.html'
    form_class = AuthenticationForm

    @method_decorator(watch_logins)
    def dispatch(self, request, *args, **kwargs):
        if request.user.is_authenticated():
            return redirect(settings.LOGIN_REDIRECT_URL)
        return super(LoginView, self).dispatch(request, *args, **kwargs)

    def form_valid(self, form):
        user = form.get_user()
        login(self.request, user)
        return super(LoginView, self).form_valid(form)

    def get_success_url(self):
        return reverse('logged_in')

Settings

CERBERUS_MAX_ATTEMPTS

Number of max failed login attempt. Default: 5.

CERBERUS_LOCKOUT_TIME

Number of seconds after the failed login attempts are forgotten in seconds. Default: 600.

Model

Each lockout model instance contains username, number of failed login attempts, IP address, user agent details, GET and POST parameters, information if lockout is locked (user tried to log in with wrong credentials at least CERBERUS_MAX_ATTEMPTS times) and if lockout is expired (based on CERBERUS_LOCKOUT_TIME).

Template

You can override cerberus/lockout.html template if you wish. There is lockout instance and lockout_time variable (CERBERUS_LOCKOUT_TIME) available in template context.

Authors

Library is by Erik Telepovsky from Pragmatic Mates. See our other libraries.

Metadata

Release files for django-cerberus 1.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for django-cerberus 1.0.1
File Size Uploaded
django_cerberus-1.0.1.tar.gz 6.5 kB Details

Release files / django_cerberus-1.0.1.tar.gz

Download URL django_cerberus-1.0.1.tar.gz
Size 6.5 kB
Tags Source
SHA-256 checksum
How to use checksums
c69ba985eec7a2319cfb65e2859fe926cafd4363793160554d595baf2648a417
BLAKE2b-256 checksum
How to use checksums
98ad8543d973ad2080d8d8ea389d4f4f18c98e8d4d021aea4e94454f8d1c05ff
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.12.7

Release history Release notifications | RSS feed

This release

1.0.1 This release

1 release file

1.0.0

1 release file

0.3.5

1 release file

0.3.4

1 release file

0.3.3

1 release file

0.3.2

1 release file

0.3.1

1 release file

0.3.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page