django-authtools
================
|Build status|
.. |Build status| image:: https://github.com/fusionbox/django-authtools/actions/workflows/ci.yml/badge.svg
:target: https://github.com/fusionbox/django-authtools/actions/workflows/ci.yml
:alt: Build Status
A custom user model app for Django 2.2+ that features email as username and
other things. It tries to stay true to the built-in user model for the most
part.
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:
.. code-block:: bash
$ pip install django-authtools
2. Add ``authtools`` to your ``INSTALLED_APPS``.
3. Add the following to your settings.py:
.. code-block:: python
AUTH_USER_MODEL = 'authtools.User'
4. Enjoy.
CHANGES
=======
2.0.1 (2024-03-19)
------------------
- Resolve `SHA1PasswordHasher` deprecation warning for Django 4.0 and above
- Resolve `pkg_resources` deprecation warning for Python 3.8 and above
- Add test coverage for Django 4.1, 4.2, and 5.0
- Add test coverage for Python 3.11 and 3.12
- Python 3.5 and 3.6 are no longer availble in GitHub runner using `ubuntu-latest`
2.0.0 (2022-07-29)
------------------
** BREAKING **
Remove views and URLs. You can now use the ones built in to Django. Removes
support for Django 1.11 and Python 2.
- Add support for Django 2.2, 3.0, 3.1, 3.2, and 4.0.
- Fix bug where request is not properly set on AuthenticationForm (#102)
- Make UserAdmin compatible with Django 2.0
- Fixes a bug where the password change link would not format correctly
- Fixes a bug where BetterReadOnlyPasswordWidget would not work on a view only permission
- Documentation fixes (#87, #117)
- Set DEFAULT_AUTO_FIELD to AutoField in AuthtoolsConfig (#123)
- Silences warning and prevents new migrations when using authtools with Django >= 3.2
- Normalize email in User clean method and UserManager get_by_natural_key method (weslord #112)
- Fixes a bug where email would not be normalized when creating a user in the admin
- Migrate from TravisCI to GitHub Actions
1.7.0 (2019-06-26)
------------------
- Fix bug when using Django 1.11 where resetting a password when already logged in
as another user caused an error
- Remove support for Django versions below 1.11 and Python below 2.7 and 3.6
1.6.0 (2017-06-14)
------------------
- Add support for Django 1.9, 1.10, 1.11 (Jared Proffitt #82)
- Remove old conditional imports dating as far back as Django 1.5
- Update readme
1.5.0 (2016-03-26)
------------------
- Update various help_text fields to match Django 1.9 (Wenze van Klink #51, Gavin Wahl #64, Jared Proffitt #67, Ivan VenOsdel #69)
- Documentation fixes (Yuki Izumi #52, Pi Delport #60, Germán Larraín #65)
- Made case-insensitive tooling work with more than just USERNAME_FIELD='username' (Jared Proffitt, Rocky Meza #72, #73)
1.4.0 (2015-11-02)
------------------
- Dropped Django 1.7 compatibility (Antoine Catton)
- Add Django 1.8 compatibility (Antoine Catton, Gavin Wahl, #56)
- **Backwards Incompatible:** Remove 1.6 URLs (Antoine Catton)
- **Backwards Incompatible:** Remove view functions
1.3.0 (unreleased)
------------------
- Added Django 1.7 compatibility (Antoine Catton, Rocky Meza, #35)
- ``LoginView.disallow_authenticated`` was changed to ``LoginView.allow_authenticated``
- ``LoginView.disallow_authenticated`` was deprecated.
- **Backwards Incompatible:** ``LoginView.allow_authenticated`` is now ``True``
by default (which is the default behavior in Django)
- Create migrations for authtools.
If updating from an older authtools, these migrations must be run on your apps::
$ python manage.py migrate --fake authtools 0001_initial
$ python manage.py migrate
1.2.0 (2015-04-02)
------------------
- Add CaseInsensitiveEmailUserCreationForm for creating users with lowercased email address
usernames (Bradley Gordon, #31, #11)
- Add CaseInsensitiveEmailBackendMixin, CaseInsensitiveEmailModelBackend for authenticating
case-insensitive email address usernames (Bradley Gordon, #31, #11)
- Add tox support for test running (Piper Merriam, #25)
1.1.0 (2015-02-24)
------------------
- PasswordChangeView now handles a ``next`` URL parameter (#24)
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
`a single view
<https://django-authtools.readthedocs.org/en/latest/views.html#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
`UserChangeForm <https://django-authtools.readthedocs.org/en/latest/forms.html#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 ``UserManager.normalize_email`` on an instance, not a class.
- ``authtools.models.User`` should inherit its parent's ``Meta``.
0.1.0 (released May 28, 2013)
-----------------------------
- django-authtools
Raw data
{
"_id": null,
"home_page": "https://django-authtools.readthedocs.org/",
"name": "django-authtools",
"maintainer": "",
"docs_url": null,
"requires_python": "",
"maintainer_email": "",
"keywords": "",
"author": "Fusionbox, Inc.",
"author_email": "programmers@fusionbox.com",
"download_url": "https://files.pythonhosted.org/packages/54/57/6a40c459ae93032f63efae348891d0b43877126f6600e27b1c511dd03c45/django-authtools-2.0.1.tar.gz",
"platform": null,
"description": "django-authtools\n================\n\n|Build status|\n\n.. |Build status| image:: https://github.com/fusionbox/django-authtools/actions/workflows/ci.yml/badge.svg\n :target: https://github.com/fusionbox/django-authtools/actions/workflows/ci.yml\n :alt: Build Status\n\n\nA custom user model app for Django 2.2+ that features email as username and\nother things. It tries to stay true to the built-in user model for the most\npart.\n\nRead the `django-authtools documentation\n<https://django-authtools.readthedocs.org/en/latest/>`_.\n\nQuickstart\n==========\n\nBefore you use this, you should probably read the documentation about `custom\nUser models\n<https://docs.djangoproject.com/en/dev/topics/auth/customizing/#substituting-a-custom-user-model>`_.\n\n1. Install the package:\n\n .. code-block:: bash\n\n $ pip install django-authtools\n\n2. Add ``authtools`` to your ``INSTALLED_APPS``.\n\n3. Add the following to your settings.py:\n\n .. code-block:: python\n\n AUTH_USER_MODEL = 'authtools.User'\n\n4. Enjoy.\n\n\nCHANGES\n=======\n\n2.0.1 (2024-03-19)\n------------------\n\n- Resolve `SHA1PasswordHasher` deprecation warning for Django 4.0 and above\n- Resolve `pkg_resources` deprecation warning for Python 3.8 and above\n- Add test coverage for Django 4.1, 4.2, and 5.0\n- Add test coverage for Python 3.11 and 3.12\n- Python 3.5 and 3.6 are no longer availble in GitHub runner using `ubuntu-latest`\n\n\n2.0.0 (2022-07-29)\n------------------\n** BREAKING **\n\nRemove views and URLs. You can now use the ones built in to Django. Removes\nsupport for Django 1.11 and Python 2.\n\n- Add support for Django 2.2, 3.0, 3.1, 3.2, and 4.0.\n- Fix bug where request is not properly set on AuthenticationForm (#102)\n- Make UserAdmin compatible with Django 2.0\n - Fixes a bug where the password change link would not format correctly\n - Fixes a bug where BetterReadOnlyPasswordWidget would not work on a view only permission\n- Documentation fixes (#87, #117)\n- Set DEFAULT_AUTO_FIELD to AutoField in AuthtoolsConfig (#123)\n - Silences warning and prevents new migrations when using authtools with Django >= 3.2\n- Normalize email in User clean method and UserManager get_by_natural_key method (weslord #112)\n - Fixes a bug where email would not be normalized when creating a user in the admin\n- Migrate from TravisCI to GitHub Actions\n\n\n1.7.0 (2019-06-26)\n------------------\n\n- Fix bug when using Django 1.11 where resetting a password when already logged in\n as another user caused an error\n- Remove support for Django versions below 1.11 and Python below 2.7 and 3.6\n\n\n1.6.0 (2017-06-14)\n------------------\n\n- Add support for Django 1.9, 1.10, 1.11 (Jared Proffitt #82)\n- Remove old conditional imports dating as far back as Django 1.5\n- Update readme\n\n\n1.5.0 (2016-03-26)\n------------------\n\n- Update various help_text fields to match Django 1.9 (Wenze van Klink #51, Gavin Wahl #64, Jared Proffitt #67, Ivan VenOsdel #69)\n- Documentation fixes (Yuki Izumi #52, Pi Delport #60, Germ\u00e1n Larra\u00edn #65)\n- Made case-insensitive tooling work with more than just USERNAME_FIELD='username' (Jared Proffitt, Rocky Meza #72, #73)\n\n\n1.4.0 (2015-11-02)\n------------------\n\n- Dropped Django 1.7 compatibility (Antoine Catton)\n- Add Django 1.8 compatibility (Antoine Catton, Gavin Wahl, #56)\n- **Backwards Incompatible:** Remove 1.6 URLs (Antoine Catton)\n- **Backwards Incompatible:** Remove view functions\n\n1.3.0 (unreleased)\n------------------\n\n- Added Django 1.7 compatibility (Antoine Catton, Rocky Meza, #35)\n- ``LoginView.disallow_authenticated`` was changed to ``LoginView.allow_authenticated``\n- ``LoginView.disallow_authenticated`` was deprecated.\n- **Backwards Incompatible:** ``LoginView.allow_authenticated`` is now ``True``\n by default (which is the default behavior in Django)\n- Create migrations for authtools.\n\n If updating from an older authtools, these migrations must be run on your apps::\n\n $ python manage.py migrate --fake authtools 0001_initial\n\n $ python manage.py migrate\n\n\n1.2.0 (2015-04-02)\n------------------\n\n- Add CaseInsensitiveEmailUserCreationForm for creating users with lowercased email address\n usernames (Bradley Gordon, #31, #11)\n- Add CaseInsensitiveEmailBackendMixin, CaseInsensitiveEmailModelBackend for authenticating\n case-insensitive email address usernames (Bradley Gordon, #31, #11)\n- Add tox support for test running (Piper Merriam, #25)\n\n\n1.1.0 (2015-02-24)\n------------------\n\n- PasswordChangeView now handles a ``next`` URL parameter (#24)\n\n1.0.0 (released August 16, 2014)\n--------------------------------\n\n- Add friendly_password_reset view and FriendlyPasswordResetForm (Antoine Catton, #18)\n- **Bugfix** Allow LOGIN_REDIRECT_URL to be unicode (Alan Johnson, Gavin Wahl, Rocky Meza, #13)\n- **Backwards Incompatible** Dropped support for Python 3.2\n\n0.2.2 (released July 21, 2014)\n------------------------------\n\n- Update safe urls in tests\n- Give the ability to restrain which users can reset their password\n- Add send_mail to AbstractEmailUser. (Jorge C. Leit\u00e3o)\n\n\n0.2.1\n-----\n\n- Bugfix: UserAdmin was expecting a User with a `name` field.\n\n0.2.0\n-----\n\n- Django 1.6 support.\n\n Django 1.6 `broke backwards compatibility\n <https://docs.djangoproject.com/en/dev/releases/1.6/#django-contrib-auth-password-reset-uses-base-64-encoding-of-user-pk>`_\n of the ``password_reset_confirm`` view. Be sure to update any references to\n this URL. Rather than using a separate view for each encoding, authtools uses\n `a single view\n <https://django-authtools.readthedocs.org/en/latest/views.html#authtools.views.PasswordResetConfirmView>`_\n that works with both.\n\n- Bugfix: if LOGIN_URL was a URL name, it wasn't being reversed in the\n PasswordResetConfirmView.\n\n0.1.2 (released July 01, 2013)\n------------------------------\n\n- Use ``prefetch_related`` in the\n `UserChangeForm <https://django-authtools.readthedocs.org/en/latest/forms.html#authtools.forms.UserChangeForm>`_\n to avoid doing hundreds of ``ContentType`` queries. The form from\n Django has the same feature, it wasn't copied over correctly in our\n original form.\n\n0.1.1 (released May 30, 2013)\n-----------------------------\n\n* some bugfixes:\n\n- Call ``UserManager.normalize_email`` on an instance, not a class.\n- ``authtools.models.User`` should inherit its parent's ``Meta``.\n\n0.1.0 (released May 28, 2013)\n-----------------------------\n\n- django-authtools\n\n\n",
"bugtrack_url": null,
"license": "BSD",
"summary": "Custom user model app for Django featuring email as username.",
"version": "2.0.1",
"project_urls": {
"Homepage": "https://django-authtools.readthedocs.org/"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "54576a40c459ae93032f63efae348891d0b43877126f6600e27b1c511dd03c45",
"md5": "271f6d57a578c455209c793ffac9a5da",
"sha256": "e344cb6be7fd5155208e291eddfcb83510efd4bad3913cb5031347b000a34c4c"
},
"downloads": -1,
"filename": "django-authtools-2.0.1.tar.gz",
"has_sig": false,
"md5_digest": "271f6d57a578c455209c793ffac9a5da",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 38956,
"upload_time": "2024-03-19T18:46:58",
"upload_time_iso_8601": "2024-03-19T18:46:58.316051Z",
"url": "https://files.pythonhosted.org/packages/54/57/6a40c459ae93032f63efae348891d0b43877126f6600e27b1c511dd03c45/django-authtools-2.0.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-03-19 18:46:58",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "django-authtools"
}