Keep track of failed login attempts in Django-powered sites.
Find a file
Aleksi Häkli e69d479f6a
Refactor handlers to a more pluggable format
- Define a base handler API with method signatures
- Move proxy handler to a separate path for importability
- Implement a database handler with clean external dependencies
- Change the authentication backend and decorators to use the authentication backend

This enables clean pluggable authentication backend definitions that users
can override and specialize with e.g. cached handlers in their own packages.

Signed-off-by: Aleksi Häkli <aleksi.hakli@iki.fi>
2019-02-22 19:55:57 +02:00
axes Refactor handlers to a more pluggable format 2019-02-22 19:55:57 +02:00
docs Refactor handlers to a more pluggable format 2019-02-22 19:55:57 +02:00
.coveragerc Update test runner script and versions 2019-02-03 16:03:29 +02:00
.gitignore Introduce gradual typing with mypy 2019-02-13 01:14:26 +02:00
.prospector.yaml Run more comprehensive prospector checks 2019-02-12 23:33:18 +02:00
.pyup.yml create pyup.io config file 2019-01-20 18:10:20 +02:00
.travis.yml Drop Python 2.7 and Python 3.4 support 2019-02-07 17:28:26 +02:00
CHANGES.txt Update changelog and documentation 2019-02-22 19:55:55 +02:00
codecov.yml Raise minimum test coverage to 90% 2019-02-10 19:22:13 +02:00
CONTRIBUTING.md Add CONTRIBUTING.md according to jazzband guidelines 2016-07-30 16:14:30 +02:00
LICENSE GC #1 - I've implemented some of the groovy features offered by philipn. Thanks! 2009-12-16 23:24:30 -05:00
manage.py Use pytest for test runner 2019-02-20 23:05:21 +02:00
MANIFEST.in Add translations to the distribution 2018-12-08 15:15:03 +02:00
mypy.ini Introduce gradual typing with mypy 2019-02-13 01:14:26 +02:00
pytest.ini Run coverage with pytest 2019-02-22 08:30:11 +02:00
README.rst Add Jazzband guidelines to README 2019-02-10 20:51:29 +02:00
requirements.txt Run coverage with pytest 2019-02-22 08:30:11 +02:00
setup.py Update and clean up setup.py 2019-02-10 21:46:44 +02:00
tox.ini Run coverage with pytest 2019-02-22 08:30:11 +02:00

Django Axes
===========

.. image:: https://jazzband.co/static/img/badge.svg
   :target: https://jazzband.co/
   :alt: Jazzband

.. image:: https://img.shields.io/github/stars/jazzband/django-axes.svg?label=Stars&style=socialcA
   :target: https://github.com/jazzband/django-axes
   :alt: GitHub

.. image:: https://img.shields.io/pypi/v/django-axes.svg
   :target: https://pypi.org/project/django-axes/
   :alt: PyPI release

.. image:: https://img.shields.io/readthedocs/django-axes.svg
   :target: https://django-axes.readthedocs.io/
   :alt: Documentation

.. image:: https://secure.travis-ci.org/jazzband/django-axes.svg?branch=master
   :target: http://travis-ci.org/jazzband/django-axes
   :alt: Build Status

.. image:: https://codecov.io/gh/jazzband/django-axes/branch/master/graph/badge.svg
   :target: https://codecov.io/gh/jazzband/django-axes
   :alt: Coverage

.. image:: https://pyup.io/repos/github/jazzband/django-axes/shield.svg
   :target: https://pyup.io/repos/github/jazzband/django-axes/
   :alt: Updates


``django-axes`` is a very simple way for you to keep track of failed login
attempts, both for the Django admin and for the rest of your site. The name is
sort of a geeky pun, since ``axes`` can be read interpreted as:

* "access", as in monitoring access attempts
* "axes", as in tools you can use hack (generally on wood). In this case,
  however, the "hacking" part of it can be taken a bit further: ``django-axes``
  is intended to help you *stop* people from hacking (popular media
  definition) your website. Hilarious, right? That's what I thought too!


Documentation
-------------

For more information see the documentation at:

https://django-axes.readthedocs.io/


Issues
------

If you have questions or have trouble using the app please file a bug report at:

https://github.com/jazzband/django-axes/issues


Contributing
------------

This is a `Jazzband <https://jazzband.co>`_ project.
By contributing you agree to abide by the
`Contributor Code of Conduct <https://jazzband.co/about/conduct>`_
and follow the `guidelines <https://jazzband.co/about/guidelines>`_.

Separate proposed changes and PRs into small, distinct patches by type
so that they can be merged faster into upstream and released quicker:

* Feature
* Bugfix
* Code style
* Documentation