Change Log

v0.4.1 - August 29, 2017 - Misc fixes

  • Improved handling of device persistent identifiers.
  • Fix #25: make sure default keys are unicode values.

v0.4.0 - July 19, 2017 - Update support matrix

  • Fix addstatictoken on Django 1.10+.
  • Drop support for versions of Django that are past EOL.

v0.3.14 - May 30, 2017 - addstatictoken fix

  • Update addstatictoken command for current Django versions.

v0.3.13 - April 11, 2017 - Pickle compatibility

  • Allow verified users to be pickled.

v0.3.12 - April 2, 2017 - Forward compatibility

  • Minor fixes for Django 1.11 and 2.0.

v0.3.11 - March 8, 2017 - Built-in QR Code support

  • #20: Generate HOTP and TOTP otpauth URLs and corresponding QR Codes. To enable this feature, install django-otp[qrcode] or just install the qrcode package.
  • Support for Python 2.6 and Django 1.4 were dropped in this version (long overdue).

v0.3.8 - November 27, 2016 - Forward compatbility for Django 2.0

v0.3.7 - September 24, 2016 - Convenience API

v0.3.6 - September 4, 2016 - Django 1.10

  • #11: Don’t break the laziness of request.user.
  • #16: Improved error message for invalid tokens.
  • #17: Support the new middleware API in Django 1.10.

v0.3.5 - April 13, 2016 - Fix default TOTP key

  • The default (random) key for a new TOTP device is now forced to a unicode string.

v0.3.4 - January 10, 2016 - Python 3 cleanup

  • All modules include all four Python 3 __future__ imports for consistency.
  • Migrations no longer have byte strings in them.

v0.3.3 - October 15, 2015 - Django 1.9

  • Fix the addstatictoken management command under Django 1.9.

v0.3.2 - October 11, 2015 - Django 1.8

  • Stop importing models into the root of the package.
  • Use ModelAdmin.raw_id_fields for foreign keys to users.
  • General cleanup and compatibility with Django 1.9a1.

v0.3.1 - April 3, 2015 - Django 1.8

  • Add support for the new app registry, when available.
  • Add Django 1.8 to the test matrix and fix a few test bugs.

v0.3.0 - February 7, 2015 - Support Django migrations

  • All plugins now have both Django and South migrations. Please see the upgrade notes for details on upgrading from previous versions.

v0.2.7 - April 26, 2014 - Fix for Custom user models with South

v0.2.6 - April 18, 2014 - Fix for Python 3.2 with South

  • Removed South-generated unicode string literals.

v0.2.4 - April 15, 2014 - TOTP plugin fix (migration warning)

  • Per the RFC, TOTPDevice will no longer verify the same token twice.
  • Cosmetic fixes to the admin login form on Django 1.6.

Warning

This includes a model change in TOTPDevice. If you are upgrading and your project uses South, you should first convert it to South with manage migrate otp_totp 0001 --fake. If you’re not using South, you will need to generate and run the appropriate SQL manually.

v0.2.3 - March 3, 2014 - Fix pickling

  • OTPMiddleware no longer interferes with pickling request.user.

v0.2.2 - December 31, 2013 - Require Django 1.4.2

  • Update Django requirement to 1.4.2, the first version with django.utils.six.

v0.2.1 - November 19, 2013 - Bug fix

  • Fix unicode representation of devices in some exotic scenarios.

v0.2.0 - November 10, 2013 - Django 1.6

  • Now supports Django 1.4 to 1.6 on Python 2.6, 2.7, 3.2, and 3.3. This is the first release for Python 3.

v0.1.8 - August 20, 2013 - user_has_device API

  • Add django_otp.user_has_device() to detect whether a user has any devices configured. This change supports a fix in django-otp-agents 0.1.4.

v0.1.7 - July 3, 2013 - Decorator improvement

v0.1.6 - May 9, 2013 - Unit test improvements

  • Major unit test cleanup. Tests should pass or be skipped under all supported versions of Django, with or without custom users and timzeone support.

v0.1.5 - May 8, 2013 - OTPAdminSite improvement

  • OTPAdminSite now selects an apporpriate login template automatically, based on the current Django version. Django versions 1.3 to 1.5 are currently supported.
  • Unit test cleanup.

v0.1.3 - March 10, 2013 - Django 1.5 compatibility

  • Add support for custom user models in Django 1.5.
  • Stop using Device.objects: Django doesn’t allow access to an abstract model’s manager any more.

v0.1.2 - October 8, 2012 - Bug fix

  • Fix an exception when an empty login form is submitted.

v0.1.0 - August 20, 2012 - Initial Release

Initial release.