Skip to main content
WARNING: PyPI Phishing attack ongoing. Please check that you are on the correct domain - PyPI dot org - before continuing  PyPI

Custom user model app for Django featuring email as username and class-based views for authentication.

Project description

django-authtools
----------------

.. image:: https://travis-ci.org/fusionbox/django-authtools.png
:target: http://travis-ci.org/fusionbox/django-authtools
:alt: Build Status


A custom user model app for Django 1.5+ that features email as username and
other things. It tries to stay true to the built-in user model for the most
part.

The main differences between authtools's User and django.contrib.auth's are
email as username and class-based auth views.

Read the `django-authtools documentation
<https://django-authtools.readthedocs.org/en/latest/>`_.

Quickstart
==========

Before you use this, you should probably read the documentation about `custom
User models
<https://docs.djangoproject.com/en/dev/topics/auth/customizing/#substituting-a-custom-user-model>`_.

1. Install the package::

$ pip install django-authtools

2. Add ``authtools`` to your ``INSTALLED_APPS``.

3. Add the following to your settings.py::

AUTH_USER_MODEL = 'authtools.User'

4. Add ``authtools.urls`` to your URL patterns::

urlpatterns = patterns('',
# ...
url(r'^accounts/', include('authtools.urls')),
# ...
)

5. Enjoy.


CHANGES
=======

1.0.0 (released August 16, 2014)
--------------------------------

- Add friendly_password_reset view and FriendlyPasswordResetForm (Antoine Catton, #18)
- **Bugfix** Allow LOGIN_REDIRECT_URL to be unicode (Alan Johnson, Gavin Wahl, Rocky Meza, #13)
- **Backwards Incompatible** Dropped support for Python 3.2

0.2.2 (released July 21, 2014)
-----------------------------

- Update safe urls in tests
- Give the ability to restrain which users can reset their password
- Add send_mail to AbstractEmailUser. (Jorge C. Leitão)


0.2.1
-----

- Bugfix: UserAdmin was expecting a User with a `name` field.

0.2.0
-----

- Django 1.6 support.

Django 1.6 `broke backwards compatibility
<https://docs.djangoproject.com/en/dev/releases/1.6/#django-contrib-auth-password-reset-uses-base-64-encoding-of-user-pk>`_
of the ``password_reset_confirm`` view. Be sure to update any references to
this URL. Rather than using a separate view for each encoding, authtools uses
:class:`a single view <authtools.views.PasswordResetConfirmView>` that works
with both.

- Bugfix: if LOGIN_URL was a URL name, it wasn't being reversed in the
PasswordResetConfirmView.

0.1.2 (released July 01, 2013)
------------------------------

- Use ``prefetch_related`` in the :class:`~authtools.forms.UserChangeForm`
to avoid doing hundreds of ``ContentType`` queries. The form from
Django has the same feature, it wasn't copied over correctly in our
original form.

0.1.1 (released May 30, 2013)
-----------------------------

* some bugfixes:

- Call :meth:`UserManager.normalize_email` on an instance, not a class.
- :class:`~authtools.models.User` should inherit its parent's ``Meta``.

0.1.0 (released May 28, 2013)
-----------------------------

- django-authtools

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page