Keep track of failed login attempts in Django-powered sites.
Find a file
Aleksi Häkli a4c4ba6fb7
Refactor utils and attempts internal API
Clean up internal implementations and tests while keeping the
APIs as similar as possible where feasible.

The goal of this change is to not change any documented
or stable APIs that might be in use by users, but to improve
the internal implementations for maintainability and usability.

Signed-off-by: Aleksi Häkli <aleksi.hakli@iki.fi>
2019-02-22 19:55:41 +02:00
axes Refactor utils and attempts internal API 2019-02-22 19:55:41 +02:00
docs Refactor attempts and add NEVER_LOCKOUT_GET flag 2019-02-13 18:20:04 +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 Refactor attempts and add NEVER_LOCKOUT_GET flag 2019-02-13 18:20:04 +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