[Python-modules-commits] [python-django-otp] 01/07: Import python-django-otp_0.4.0.1.orig.tar.gz
Michael Fladischer
fladi at moszumanska.debian.org
Sat Jul 22 13:30:39 UTC 2017
This is an automated email from the git hooks/post-receive script.
fladi pushed a commit to branch master
in repository python-django-otp.
commit 3170ba75d6fa22a5f4b03a90e016a93d4e2b61a6
Author: Michael Fladischer <FladischerMichael at fladi.at>
Date: Sat Jul 22 14:37:27 2017 +0200
Import python-django-otp_0.4.0.1.orig.tar.gz
---
CHANGES | 8 ++
PKG-INFO | 15 ++--
README.rst | 10 +--
django_otp.egg-info/PKG-INFO | 15 ++--
django_otp.egg-info/SOURCES.txt | 9 --
django_otp.egg-info/requires.txt | 2 +-
.../otp_email/south_migrations/0001_initial.py | 74 ---------------
.../plugins/otp_email/south_migrations/__init__.py | 0
.../otp_hotp/south_migrations/0001_initial.py | 80 -----------------
.../plugins/otp_hotp/south_migrations/__init__.py | 0
.../management/commands/addstatictoken.py | 13 ++-
.../otp_static/south_migrations/0001_initial.py | 100 ---------------------
.../otp_static/south_migrations/__init__.py | 0
.../otp_totp/south_migrations/0001_initial.py | 91 -------------------
.../otp_totp/south_migrations/0002_last_t.py | 82 -----------------
.../plugins/otp_totp/south_migrations/__init__.py | 0
docs/source/conf.py | 30 +++++--
setup.cfg | 1 -
setup.py | 5 +-
19 files changed, 51 insertions(+), 484 deletions(-)
diff --git a/CHANGES b/CHANGES
index 1ba8f96..a0a1b43 100644
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,11 @@
+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
-------------------------------------------
diff --git a/PKG-INFO b/PKG-INFO
index 263d3e9..006144f 100644
--- a/PKG-INFO
+++ b/PKG-INFO
@@ -1,12 +1,14 @@
Metadata-Version: 1.1
Name: django-otp
-Version: 0.3.14
+Version: 0.4.0.1
Summary: A pluggable framework for adding two-factor authentication to Django using one-time passwords.
Home-page: https://bitbucket.org/psagers/django-otp
Author: Peter Sagerson
Author-email: psagers at ignorare.net
License: BSD
-Description: This project makes it easy to add support for `one-time passwords
+Description: `Package Documentation <http://django-otp-official.readthedocs.io/>`_
+
+ This project makes it easy to add support for `one-time passwords
<http://en.wikipedia.org/wiki/One-time_password>`_ (OTPs) to Django. It can be
integrated at various levels, depending on how much customization is required.
It integrates with ``django.contrib.auth``, although it is not a Django
@@ -20,13 +22,7 @@ Description: This project makes it easy to add support for `one-time passwords
<http://tools.ietf.org/html/rfc6238>`_ for convenience, as these are standard
OTP algorithms used by multiple plugins.
- This version is supported on Python 2.6, 2.7, and 3.3+; and Django >= 1.4.2.
-
- .. warning::
-
- All plugins now contain both South and Django migrations. If you're using
- South or upgrading to Django 1.7, please see the `upgrade notes`_ in the
- documentation first.
+ This version is supported on Python 2.7 and 3.4+; and Django 1.8 and 1.10+.
.. _upgrade notes: https://pythonhosted.org/django-otp/overview.html#upgrading
@@ -40,7 +36,6 @@ Classifier: License :: OSI Approved :: BSD License
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
-Classifier: Programming Language :: Python :: 3.3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
diff --git a/README.rst b/README.rst
index bceb8bc..1883575 100644
--- a/README.rst
+++ b/README.rst
@@ -1,3 +1,5 @@
+`Package Documentation <http://django-otp-official.readthedocs.io/>`_
+
This project makes it easy to add support for `one-time passwords
<http://en.wikipedia.org/wiki/One-time_password>`_ (OTPs) to Django. It can be
integrated at various levels, depending on how much customization is required.
@@ -12,13 +14,7 @@ separately. This package also includes an implementation of OATH `HOTP
<http://tools.ietf.org/html/rfc6238>`_ for convenience, as these are standard
OTP algorithms used by multiple plugins.
-This version is supported on Python 2.6, 2.7, and 3.3+; and Django >= 1.4.2.
-
-.. warning::
-
- All plugins now contain both South and Django migrations. If you're using
- South or upgrading to Django 1.7, please see the `upgrade notes`_ in the
- documentation first.
+This version is supported on Python 2.7 and 3.4+; and Django 1.8 and 1.10+.
.. _upgrade notes: https://pythonhosted.org/django-otp/overview.html#upgrading
diff --git a/django_otp.egg-info/PKG-INFO b/django_otp.egg-info/PKG-INFO
index 263d3e9..006144f 100644
--- a/django_otp.egg-info/PKG-INFO
+++ b/django_otp.egg-info/PKG-INFO
@@ -1,12 +1,14 @@
Metadata-Version: 1.1
Name: django-otp
-Version: 0.3.14
+Version: 0.4.0.1
Summary: A pluggable framework for adding two-factor authentication to Django using one-time passwords.
Home-page: https://bitbucket.org/psagers/django-otp
Author: Peter Sagerson
Author-email: psagers at ignorare.net
License: BSD
-Description: This project makes it easy to add support for `one-time passwords
+Description: `Package Documentation <http://django-otp-official.readthedocs.io/>`_
+
+ This project makes it easy to add support for `one-time passwords
<http://en.wikipedia.org/wiki/One-time_password>`_ (OTPs) to Django. It can be
integrated at various levels, depending on how much customization is required.
It integrates with ``django.contrib.auth``, although it is not a Django
@@ -20,13 +22,7 @@ Description: This project makes it easy to add support for `one-time passwords
<http://tools.ietf.org/html/rfc6238>`_ for convenience, as these are standard
OTP algorithms used by multiple plugins.
- This version is supported on Python 2.6, 2.7, and 3.3+; and Django >= 1.4.2.
-
- .. warning::
-
- All plugins now contain both South and Django migrations. If you're using
- South or upgrading to Django 1.7, please see the `upgrade notes`_ in the
- documentation first.
+ This version is supported on Python 2.7 and 3.4+; and Django 1.8 and 1.10+.
.. _upgrade notes: https://pythonhosted.org/django-otp/overview.html#upgrading
@@ -40,7 +36,6 @@ Classifier: License :: OSI Approved :: BSD License
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
-Classifier: Programming Language :: Python :: 3.3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
diff --git a/django_otp.egg-info/SOURCES.txt b/django_otp.egg-info/SOURCES.txt
index 97f81d3..816bc13 100644
--- a/django_otp.egg-info/SOURCES.txt
+++ b/django_otp.egg-info/SOURCES.txt
@@ -29,8 +29,6 @@ django_otp/plugins/otp_email/models.py
django_otp/plugins/otp_email/tests.py
django_otp/plugins/otp_email/migrations/0001_initial.py
django_otp/plugins/otp_email/migrations/__init__.py
-django_otp/plugins/otp_email/south_migrations/0001_initial.py
-django_otp/plugins/otp_email/south_migrations/__init__.py
django_otp/plugins/otp_email/templates/otp/email/token.txt
django_otp/plugins/otp_hotp/__init__.py
django_otp/plugins/otp_hotp/admin.py
@@ -38,8 +36,6 @@ django_otp/plugins/otp_hotp/models.py
django_otp/plugins/otp_hotp/tests.py
django_otp/plugins/otp_hotp/migrations/0001_initial.py
django_otp/plugins/otp_hotp/migrations/__init__.py
-django_otp/plugins/otp_hotp/south_migrations/0001_initial.py
-django_otp/plugins/otp_hotp/south_migrations/__init__.py
django_otp/plugins/otp_hotp/templates/otp_hotp/admin/config.html
django_otp/plugins/otp_static/__init__.py
django_otp/plugins/otp_static/admin.py
@@ -51,17 +47,12 @@ django_otp/plugins/otp_static/management/commands/__init__.py
django_otp/plugins/otp_static/management/commands/addstatictoken.py
django_otp/plugins/otp_static/migrations/0001_initial.py
django_otp/plugins/otp_static/migrations/__init__.py
-django_otp/plugins/otp_static/south_migrations/0001_initial.py
-django_otp/plugins/otp_static/south_migrations/__init__.py
django_otp/plugins/otp_totp/__init__.py
django_otp/plugins/otp_totp/admin.py
django_otp/plugins/otp_totp/models.py
django_otp/plugins/otp_totp/tests.py
django_otp/plugins/otp_totp/migrations/0001_initial.py
django_otp/plugins/otp_totp/migrations/__init__.py
-django_otp/plugins/otp_totp/south_migrations/0001_initial.py
-django_otp/plugins/otp_totp/south_migrations/0002_last_t.py
-django_otp/plugins/otp_totp/south_migrations/__init__.py
django_otp/plugins/otp_totp/templates/otp_totp/admin/config.html
django_otp/templates/otp/admin14/login.html
django_otp/templates/otp/admin15/login.html
diff --git a/django_otp.egg-info/requires.txt b/django_otp.egg-info/requires.txt
index 3d48ba4..6bf4f1f 100644
--- a/django_otp.egg-info/requires.txt
+++ b/django_otp.egg-info/requires.txt
@@ -1,4 +1,4 @@
-django >= 1.5.12
+django>=1.8
[qrcode]
qrcode
diff --git a/django_otp/plugins/otp_email/south_migrations/0001_initial.py b/django_otp/plugins/otp_email/south_migrations/0001_initial.py
deleted file mode 100644
index 0b25562..0000000
--- a/django_otp/plugins/otp_email/south_migrations/0001_initial.py
+++ /dev/null
@@ -1,74 +0,0 @@
-# -*- coding: utf-8 -*-
-from south.utils import datetime_utils as datetime
-from south.db import db
-from south.v2 import SchemaMigration
-from django.db import models
-
-
-class Migration(SchemaMigration):
-
- def forwards(self, orm):
- # Adding model 'EmailDevice'
- db.create_table('otp_email_emaildevice', (
- ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
- ('user', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['auth.User'])),
- ('name', self.gf('django.db.models.fields.CharField')(max_length=64)),
- ('confirmed', self.gf('django.db.models.fields.BooleanField')(default=True)),
- ('key', self.gf('django.db.models.fields.CharField')(default='14ec9e8ed75e3796a267e835ade15653a34de87b', max_length=80)),
- ))
- db.send_create_signal('otp_email', ['EmailDevice'])
-
-
- def backwards(self, orm):
- # Deleting model 'EmailDevice'
- db.delete_table('otp_email_emaildevice')
-
-
- models = {
- 'auth.group': {
- 'Meta': {'object_name': 'Group'},
- 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
- 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
- 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'})
- },
- 'auth.permission': {
- 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},
- 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
- 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
- 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
- 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
- },
- 'auth.user': {
- 'Meta': {'object_name': 'User'},
- 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
- 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
- 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
- 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}),
- 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
- 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
- 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
- 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
- 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
- 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
- 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
- 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}),
- 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
- },
- 'contenttypes.contenttype': {
- 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
- 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
- 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
- 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
- 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
- },
- 'otp_email.emaildevice': {
- 'Meta': {'object_name': 'EmailDevice'},
- 'confirmed': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
- 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
- 'key': ('django.db.models.fields.CharField', [], {'default': "'67fe0bf8279a51ad9c3637462a81b16593caee99'", 'max_length': '80'}),
- 'name': ('django.db.models.fields.CharField', [], {'max_length': '64'}),
- 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"})
- }
- }
-
- complete_apps = ['otp_email']
diff --git a/django_otp/plugins/otp_email/south_migrations/__init__.py b/django_otp/plugins/otp_email/south_migrations/__init__.py
deleted file mode 100644
index e69de29..0000000
diff --git a/django_otp/plugins/otp_hotp/south_migrations/0001_initial.py b/django_otp/plugins/otp_hotp/south_migrations/0001_initial.py
deleted file mode 100644
index 2551ad0..0000000
--- a/django_otp/plugins/otp_hotp/south_migrations/0001_initial.py
+++ /dev/null
@@ -1,80 +0,0 @@
-# -*- coding: utf-8 -*-
-from south.utils import datetime_utils as datetime
-from south.db import db
-from south.v2 import SchemaMigration
-from django.db import models
-
-
-class Migration(SchemaMigration):
-
- def forwards(self, orm):
- # Adding model 'HOTPDevice'
- db.create_table('otp_hotp_hotpdevice', (
- ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
- ('user', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['auth.User'])),
- ('name', self.gf('django.db.models.fields.CharField')(max_length=64)),
- ('confirmed', self.gf('django.db.models.fields.BooleanField')(default=True)),
- ('key', self.gf('django.db.models.fields.CharField')(default='9a205c276225bce9c2801a0ab1eddadb05f5109b', max_length=80)),
- ('digits', self.gf('django.db.models.fields.PositiveSmallIntegerField')(default=6)),
- ('tolerance', self.gf('django.db.models.fields.PositiveSmallIntegerField')(default=5)),
- ('counter', self.gf('django.db.models.fields.BigIntegerField')(default=0)),
- ))
- db.send_create_signal('otp_hotp', ['HOTPDevice'])
-
-
- def backwards(self, orm):
- # Deleting model 'HOTPDevice'
- db.delete_table('otp_hotp_hotpdevice')
-
-
- models = {
- 'auth.group': {
- 'Meta': {'object_name': 'Group'},
- 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
- 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
- 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'})
- },
- 'auth.permission': {
- 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},
- 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
- 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
- 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
- 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
- },
- 'auth.user': {
- 'Meta': {'object_name': 'User'},
- 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
- 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
- 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
- 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}),
- 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
- 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
- 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
- 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
- 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
- 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
- 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
- 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}),
- 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
- },
- 'contenttypes.contenttype': {
- 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
- 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
- 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
- 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
- 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
- },
- 'otp_hotp.hotpdevice': {
- 'Meta': {'object_name': 'HOTPDevice'},
- 'confirmed': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
- 'counter': ('django.db.models.fields.BigIntegerField', [], {'default': '0'}),
- 'digits': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '6'}),
- 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
- 'key': ('django.db.models.fields.CharField', [], {'default': "'6436c8a792dc6160b5a20d90d57e441762ef3a94'", 'max_length': '80'}),
- 'name': ('django.db.models.fields.CharField', [], {'max_length': '64'}),
- 'tolerance': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '5'}),
- 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"})
- }
- }
-
- complete_apps = ['otp_hotp']
\ No newline at end of file
diff --git a/django_otp/plugins/otp_hotp/south_migrations/__init__.py b/django_otp/plugins/otp_hotp/south_migrations/__init__.py
deleted file mode 100644
index e69de29..0000000
diff --git a/django_otp/plugins/otp_static/management/commands/addstatictoken.py b/django_otp/plugins/otp_static/management/commands/addstatictoken.py
index 01de42d..817bcac 100644
--- a/django_otp/plugins/otp_static/management/commands/addstatictoken.py
+++ b/django_otp/plugins/otp_static/management/commands/addstatictoken.py
@@ -9,19 +9,16 @@ from django_otp.plugins.otp_static.lib import get_user_model, add_static_token
class Command(BaseCommand):
- option_list = getattr(BaseCommand, 'option_list', ()) + (
- make_option('-t', '--token', dest='token', help='The token to add. If omitted, one will be randomly generated.'),
- )
- args = '<username>'
help = fill('Adds a single static OTP token to the given user. '
'The token will be added to an arbitrary static device '
'attached to the user, creating one if necessary.', width=78)
- def handle(self, *args, **options):
- if len(args) != 1:
- raise CommandError('Please specify exactly one username.')
+ def add_arguments(self, parser):
+ parser.add_argument('-t', '--token', dest='token', help='The token to add. If omitted, one will be randomly generated.')
+ parser.add_argument('username', help='The user to which the token will be assigned.')
- username = args[0]
+ def handle(self, *args, **options):
+ username = options['username']
try:
statictoken = add_static_token(username, options.get('token'))
diff --git a/django_otp/plugins/otp_static/south_migrations/0001_initial.py b/django_otp/plugins/otp_static/south_migrations/0001_initial.py
deleted file mode 100644
index 9fab1ad..0000000
--- a/django_otp/plugins/otp_static/south_migrations/0001_initial.py
+++ /dev/null
@@ -1,100 +0,0 @@
-# -*- coding: utf-8 -*-
-from south.utils import datetime_utils as datetime
-from south.db import db
-from south.v2 import SchemaMigration
-from django.db import models
-
-
-try:
- from django.contrib.auth import get_user_model
-except ImportError:
- from django.contrib.auth.models import User
-else:
- User = get_user_model()
-
-user_orm_label = '%s.%s' % (User._meta.app_label, User._meta.object_name)
-user_model_label = '%s.%s' % (User._meta.app_label, User._meta.module_name)
-
-
-class Migration(SchemaMigration):
-
- def forwards(self, orm):
- # Adding model 'StaticDevice'
- db.create_table('otp_static_staticdevice', (
- ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
- ('user', self.gf('django.db.models.fields.related.ForeignKey')(to=orm[user_orm_label])),
- ('name', self.gf('django.db.models.fields.CharField')(max_length=64)),
- ('confirmed', self.gf('django.db.models.fields.BooleanField')(default=True)),
- ))
- db.send_create_signal('otp_static', ['StaticDevice'])
-
- # Adding model 'StaticToken'
- db.create_table('otp_static_statictoken', (
- ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
- ('device', self.gf('django.db.models.fields.related.ForeignKey')(related_name='token_set', to=orm['otp_static.StaticDevice'])),
- ('token', self.gf('django.db.models.fields.CharField')(max_length=16, db_index=True)),
- ))
- db.send_create_signal('otp_static', ['StaticToken'])
-
-
- def backwards(self, orm):
- # Deleting model 'StaticDevice'
- db.delete_table('otp_static_staticdevice')
-
- # Deleting model 'StaticToken'
- db.delete_table('otp_static_statictoken')
-
-
- models = {
- 'auth.group': {
- 'Meta': {'object_name': 'Group'},
- 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
- 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
- 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'})
- },
- 'auth.permission': {
- 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},
- 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
- 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
- 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
- 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
- },
- user_model_label: {
- 'Meta': {'object_name': User.__name__, 'db_table': "'%s'" % User._meta.db_table},
- 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
- 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
- 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
- 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}),
- 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
- 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
- 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
- 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
- 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
- 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
- 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
- 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}),
- 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
- },
- 'contenttypes.contenttype': {
- 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
- 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
- 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
- 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
- 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
- },
- 'otp_static.staticdevice': {
- 'Meta': {'object_name': 'StaticDevice'},
- 'confirmed': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
- 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
- 'name': ('django.db.models.fields.CharField', [], {'max_length': '64'}),
- 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm[user_orm_label]"})
- },
- 'otp_static.statictoken': {
- 'Meta': {'object_name': 'StaticToken'},
- 'device': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'token_set'", 'to': "orm['otp_static.StaticDevice']"}),
- 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
- 'token': ('django.db.models.fields.CharField', [], {'max_length': '16', 'db_index': 'True'})
- }
- }
-
- complete_apps = ['otp_static']
\ No newline at end of file
diff --git a/django_otp/plugins/otp_static/south_migrations/__init__.py b/django_otp/plugins/otp_static/south_migrations/__init__.py
deleted file mode 100644
index e69de29..0000000
diff --git a/django_otp/plugins/otp_totp/south_migrations/0001_initial.py b/django_otp/plugins/otp_totp/south_migrations/0001_initial.py
deleted file mode 100644
index 9356d6f..0000000
--- a/django_otp/plugins/otp_totp/south_migrations/0001_initial.py
+++ /dev/null
@@ -1,91 +0,0 @@
-# -*- coding: utf-8 -*-
-from south.db import db
-from south.v2 import SchemaMigration
-from django.db import models
-
-try:
- from django.contrib.auth import get_user_model
-except ImportError:
- from django.contrib.auth.models import User
-else:
- User = get_user_model()
-
-user_orm_label = '%s.%s' % (User._meta.app_label, User._meta.object_name)
-user_model_label = '%s.%s' % (User._meta.app_label, User._meta.module_name)
-
-
-class Migration(SchemaMigration):
-
- def forwards(self, orm):
- # Adding model 'TOTPDevice'
- db.create_table('otp_totp_totpdevice', (
- ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
- ('user', self.gf('django.db.models.fields.related.ForeignKey')(to=orm[user_orm_label])),
- ('name', self.gf('django.db.models.fields.CharField')(max_length=64)),
- ('confirmed', self.gf('django.db.models.fields.BooleanField')(default=True)),
- ('key', self.gf('django.db.models.fields.CharField')(default='31ca700ecf99ed44834f088dca5c933e361eb126', max_length=80)),
- ('step', self.gf('django.db.models.fields.PositiveSmallIntegerField')(default=30)),
- ('t0', self.gf('django.db.models.fields.BigIntegerField')(default=0)),
- ('digits', self.gf('django.db.models.fields.PositiveSmallIntegerField')(default=6)),
- ('tolerance', self.gf('django.db.models.fields.PositiveSmallIntegerField')(default=1)),
- ('drift', self.gf('django.db.models.fields.SmallIntegerField')(default=0)),
- ))
- db.send_create_signal('otp_totp', ['TOTPDevice'])
-
- def backwards(self, orm):
- # Deleting model 'TOTPDevice'
- db.delete_table('otp_totp_totpdevice')
-
- models = {
- 'auth.group': {
- 'Meta': {'object_name': 'Group'},
- 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
- 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
- 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'})
- },
- 'auth.permission': {
- 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},
- 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
- 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
- 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
- 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
- },
- user_model_label: {
- 'Meta': {'object_name': User.__name__, 'db_table': "'%s'" % User._meta.db_table},
- 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
- 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
- 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
- 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "'user_set'", 'blank': 'True', 'to': "orm['auth.Group']"}),
- 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
- 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
- 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
- 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
- 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
- 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
- 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
- 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "'user_set'", 'blank': 'True', 'to': "orm['auth.Permission']"}),
- 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
- },
- 'contenttypes.contenttype': {
- 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
- 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
- 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
- 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
- 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
- },
- 'otp_totp.totpdevice': {
- 'Meta': {'object_name': 'TOTPDevice'},
- 'confirmed': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
- 'digits': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '6'}),
- 'drift': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),
- 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
- 'key': ('django.db.models.fields.CharField', [], {'default': "'b60739965a1f4b2a6636036f03da754a2ad2375d'", 'max_length': '80'}),
- 'name': ('django.db.models.fields.CharField', [], {'max_length': '64'}),
- 'step': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '30'}),
- 't0': ('django.db.models.fields.BigIntegerField', [], {'default': '0'}),
- 'tolerance': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '1'}),
- 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm[user_orm_label]"})
- }
- }
-
- complete_apps = ['otp_totp']
diff --git a/django_otp/plugins/otp_totp/south_migrations/0002_last_t.py b/django_otp/plugins/otp_totp/south_migrations/0002_last_t.py
deleted file mode 100644
index bbf2fb0..0000000
--- a/django_otp/plugins/otp_totp/south_migrations/0002_last_t.py
+++ /dev/null
@@ -1,82 +0,0 @@
-# -*- coding: utf-8 -*-
-from south.db import db
-from south.v2 import SchemaMigration
-from django.db import models
-
-try:
- from django.contrib.auth import get_user_model
-except ImportError:
- from django.contrib.auth.models import User
-else:
- User = get_user_model()
-
-user_orm_label = '%s.%s' % (User._meta.app_label, User._meta.object_name)
-user_model_label = '%s.%s' % (User._meta.app_label, User._meta.module_name)
-
-
-class Migration(SchemaMigration):
-
- def forwards(self, orm):
- # Adding field 'TOTPDevice.last_t'
- db.add_column('otp_totp_totpdevice', 'last_t',
- self.gf('django.db.models.fields.BigIntegerField')(default=-1),
- keep_default=False)
-
- def backwards(self, orm):
- # Deleting field 'TOTPDevice.last_t'
- db.delete_column('otp_totp_totpdevice', 'last_t')
-
- models = {
- 'auth.group': {
- 'Meta': {'object_name': 'Group'},
- 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
- 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
- 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'})
- },
- 'auth.permission': {
- 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},
- 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
- 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
- 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
- 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
- },
- user_model_label: {
- 'Meta': {'object_name': User.__name__, 'db_table': "'%s'" % User._meta.db_table},
- 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
- 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
- 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
- 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "'user_set'", 'blank': 'True', 'to': "orm['auth.Group']"}),
- 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
- 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
- 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
- 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
- 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
- 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
- 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
- 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "'user_set'", 'blank': 'True', 'to': "orm['auth.Permission']"}),
- 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
- },
- 'contenttypes.contenttype': {
- 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
- 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
- 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
- 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
- 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
- },
- 'otp_totp.totpdevice': {
- 'Meta': {'object_name': 'TOTPDevice'},
- 'confirmed': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
- 'digits': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '6'}),
- 'drift': ('django.db.models.fields.SmallIntegerField', [], {'default': '0'}),
- 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
- 'key': ('django.db.models.fields.CharField', [], {'default': "'75f9de9f45165c34419e00a46ca41762c1fe4583'", 'max_length': '80'}),
- 'last_t': ('django.db.models.fields.BigIntegerField', [], {'default': '-1'}),
- 'name': ('django.db.models.fields.CharField', [], {'max_length': '64'}),
- 'step': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '30'}),
- 't0': ('django.db.models.fields.BigIntegerField', [], {'default': '0'}),
- 'tolerance': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '1'}),
- 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm[user_orm_label]"})
- }
- }
-
- complete_apps = ['otp_totp']
diff --git a/django_otp/plugins/otp_totp/south_migrations/__init__.py b/django_otp/plugins/otp_totp/south_migrations/__init__.py
deleted file mode 100644
index e69de29..0000000
diff --git a/docs/source/conf.py b/docs/source/conf.py
index 0358063..73d0c10 100644
--- a/docs/source/conf.py
+++ b/docs/source/conf.py
@@ -36,20 +36,34 @@ extensions = [
]
# autodoc and viewcode need valid settings in order to process Django modules.
+import django
import django.conf
+
django.conf.settings.configure(
DATABASES={
'default': {
'ENGINE': 'django.db.backends.sqlite3',
- 'NAME': '/tmp/django_otp.sqlite',
}
- }
+ },
+ INSTALLED_APPS = [
+ 'django.contrib.auth',
+ 'django.contrib.contenttypes',
+ 'django.contrib.sessions',
+ 'django.contrib.messages',
+
+ 'django_otp',
+ 'django_otp.plugins.otp_hotp',
+ 'django_otp.plugins.otp_totp',
+ 'django_otp.plugins.otp_static',
+ 'django_otp.plugins.otp_email',
+ ]
)
+django.setup()
intersphinx_mapping = {
- 'python': ('http://docs.python.org/2/', None),
- 'django': ('https://docs.djangoproject.com/en/1.10/',
- 'https://docs.djangoproject.com/en/1.10/_objects/'),
+ 'python': ('http://docs.python.org/3/', None),
+ 'django': ('https://docs.djangoproject.com/en/1.11/',
+ 'https://docs.djangoproject.com/en/1.11/_objects/'),
}
# Add any paths that contain templates here, relative to this directory.
@@ -73,9 +87,9 @@ copyright = u'2012, Peter Sagerson'
# built documents.
#
# The short X.Y version.
-version = '0.3'
+version = '0.4'
# The full version, including alpha/beta/rc tags.
-release = '0.3.14'
+release = '0.4.0'
# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
@@ -145,7 +159,7 @@ html_theme = 'default'
# Add any paths that contain custom static files (such as style sheets) here,
# relative to this directory. They are copied after the builtin static files,
# so a file named "default.css" will overwrite the builtin "default.css".
-html_static_path = ['_static']
+#html_static_path = ['_static']
# If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
# using the given strftime format.
diff --git a/setup.cfg b/setup.cfg
index 85106ed..f3b3d61 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -7,5 +7,4 @@ universal = 1
[egg_info]
tag_build =
tag_date = 0
-tag_svn_revision = 0
diff --git a/setup.py b/setup.py
index 09c7abe..b1e41b2 100755
--- a/setup.py
+++ b/setup.py
@@ -5,7 +5,7 @@ from setuptools import setup, find_packages
setup(
name='django-otp',
- version='0.3.14',
+ version='0.4.0.1',
description='A pluggable framework for adding two-factor authentication to Django using one-time passwords.',
long_description=open('README.rst').read(),
author='Peter Sagerson',
@@ -16,7 +16,7 @@ setup(
url='https://bitbucket.org/psagers/django-otp',
license='BSD',
install_requires=[
- 'django >= 1.5.12'
+ 'django >= 1.8'
],
extras_require={
'qrcode': ['qrcode'],
@@ -29,7 +29,6 @@ setup(
"Programming Language :: Python :: 2",
"Programming Language :: Python :: 2.7",
"Programming Language :: Python :: 3",
- "Programming Language :: Python :: 3.3",
"Programming Language :: Python :: 3.4",
"Programming Language :: Python :: 3.5",
"Programming Language :: Python :: 3.6",
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/python-modules/packages/python-django-otp.git
More information about the Python-modules-commits
mailing list