- Only import otp models that are installed
- Fix device_id url component converter
- Update test project for warnings
- Deprecate KLEIDES_MFA_PATCH_ADMIN for custom AdminConfig app
- Add decorators and mixins for recent authentication checks
- Refactor app settings to enable override_settings
- Include jquery qrcode javascript
- Run ValidationService migration on routed database
- Add signals to act on adding/removing MFA devices.
- Fix compatibility with Django-4.0.
- Update test matrix for supported releases only.
- Make device table responsive.
- Update bootstrap, jquery and popper script tags.
- Prevent single factor access to device list when multi factor is available.
- Switch to setuptools_scm for automatic git versioning.
- Move package data to setup.cfg.
- Add Python 3.9 and Django 3.2 to the support matrix.
- Remove Python 3.5 and Django 3.0 which are end of life.
- Move test dependencies to the kleides-mfa[test] extra.
- Switch to PEP517 package builder.
- Configure ValidationService on the database that is being migrated.
- Send user_login_failed signal on device failures.
- Test Django login signals with Kleides MFA.
- Add python 3.8 and Django 3.1 to support matrix.
- Test unprintable token input.
- Remove future statements.
- Remove non-optional PATCH_USER setting.
- Fix unset plugin attribute on PermissionDeniedError.
- Restart authentication when accessing a bad device.
- Replace deprecated Django-3.0 functions.
- Fix session cleanup after login as different user.
- Escape the next parameter in the "Other method" device selection.
- Show device name in verification form.
- Actually remove django-crispy-forms as a hard dependency.
- Add function to get the authentication method of a logged in user.
- Preserve next parameter when redirecting to verification url.
- Use cloudflare for all external script/style.
- Remove crispy forms as a hard dependency.
- Add setting to disable patching of the User models.
- Patch AnonymousUser to share the properties of the User model.
- Add configurable redirect for users that login without 2 step authentication.
- Fix 2 step test login when another user was logged in.
- Cleanup plugin button/table alignment.
- Add Yubikey plugin for django-otp-yubikey.
- Only patch AdminSite when admin is installed.
- Remove python 2 compatibility classifiers.
- Improve and fix documentation.
- Set defaul device name if omitted from POST data.
- First release on PyPI.