Package: django-authtools
django-authtoolsA 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 thedjango-authtools documentation.QuickstartBefore you use this, you should probably read the documentation aboutcustom
User models.Install the package:$pipinstalldjango-authtoolsAddauthtoolsto yourINSTALLED_APPS.Add the following to your settings.py:AUTH_USER_MODEL='authtools.User'Enjoy.CHANGES2.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 permissionDocumentation fixes (#87, #117)Set DEFAULT_AUTO_FIELD to AutoField in AuthtoolsConfig (#123)
- Silences warning and prevents new migrations when using authtools with Django >= 3.2Normalize 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 adminMigrate from TravisCI to GitHub Actions1.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 errorRemove support for Django versions below 1.11 and Python below 2.7 and 3.61.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.5Update readme1.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 functions1.3.0 (unreleased)Added Django 1.7 compatibility (Antoine Catton, Rocky Meza, #35)LoginView.disallow_authenticatedwas changed toLoginView.allow_authenticatedLoginView.disallow_authenticatedwas deprecated.Backwards Incompatible:LoginView.allow_authenticatedis nowTrueby 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 migrate1.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 anextURL parameter (#24)1.0.0 (released August 16, 2014)Add friendly_password_reset view and FriendlyPasswordResetForm (Antoine Catton, #18)BugfixAllow LOGIN_REDIRECT_URL to be unicode (Alan Johnson, Gavin Wahl, Rocky Meza, #13)Backwards IncompatibleDropped support for Python 3.20.2.2 (released July 21, 2014)Update safe urls in testsGive the ability to restrain which users can reset their passwordAdd send_mail to AbstractEmailUser. (Jorge C. Leitão)0.2.1Bugfix: UserAdmin was expecting a User with anamefield.0.2.0Django 1.6 support.Django 1.6broke backwards compatibilityof thepassword_reset_confirmview. Be sure to update any references to
this URL. Rather than using a separate view for each encoding, authtools usesa single viewthat 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)Useprefetch_relatedin theUserChangeFormto avoid doing hundreds ofContentTypequeries. 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:CallUserManager.normalize_emailon an instance, not a class.authtools.models.Usershould inherit its parent’sMeta.0.1.0 (released May 28, 2013)django-authtools