From 0bca23442dff8b63ed8b1312495a17a6786ad0ae Mon Sep 17 00:00:00 2001 From: Nik Nyby Date: Wed, 22 Apr 2015 15:08:13 -0400 Subject: [PATCH] Add external migration for oauth2 provider https://github.com/evonove/django-oauth-toolkit/issues/204 --- dmt/migrations/__init__.py | 0 dmt/migrations/provider/0001_initial.py | 71 +++++++++++++++++++++++++ dmt/migrations/provider/__init__.py | 0 dmt/settings_shared.py | 6 +++ 4 files changed, 77 insertions(+) create mode 100644 dmt/migrations/__init__.py create mode 100644 dmt/migrations/provider/0001_initial.py create mode 100644 dmt/migrations/provider/__init__.py diff --git a/dmt/migrations/__init__.py b/dmt/migrations/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/dmt/migrations/provider/0001_initial.py b/dmt/migrations/provider/0001_initial.py new file mode 100644 index 000000000..55e6b1dc6 --- /dev/null +++ b/dmt/migrations/provider/0001_initial.py @@ -0,0 +1,71 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +from django.db import models, migrations +import provider.utils +from django.conf import settings + + +class Migration(migrations.Migration): + + dependencies = [ + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ] + + operations = [ + migrations.CreateModel( + name='AccessToken', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('token', models.CharField(default=provider.utils.long_token, max_length=255, db_index=True)), + ('expires', models.DateTimeField()), + ('scope', models.IntegerField(default=2, choices=[(2, b'read'), (4, b'write'), (6, b'read+write')])), + ], + ), + migrations.CreateModel( + name='Client', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('name', models.CharField(max_length=255, blank=True)), + ('url', models.URLField(help_text=b"Your application's URL.")), + ('redirect_uri', models.URLField(help_text=b"Your application's callback URL")), + ('client_id', models.CharField(default=provider.utils.short_token, max_length=255)), + ('client_secret', models.CharField(default=provider.utils.long_token, max_length=255)), + ('client_type', models.IntegerField(choices=[(0, b'Confidential (Web applications)'), (1, b'Public (Native and JS applications)')])), + ('user', models.ForeignKey(related_name='oauth2_client', blank=True, to=settings.AUTH_USER_MODEL, null=True)), + ], + ), + migrations.CreateModel( + name='Grant', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('code', models.CharField(default=provider.utils.long_token, max_length=255)), + ('expires', models.DateTimeField(default=provider.utils.get_code_expiry)), + ('redirect_uri', models.CharField(max_length=255, blank=True)), + ('scope', models.IntegerField(default=0)), + ('client', models.ForeignKey(to='provider.Client')), + ('user', models.ForeignKey(to=settings.AUTH_USER_MODEL)), + ], + ), + migrations.CreateModel( + name='RefreshToken', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('token', models.CharField(default=provider.utils.long_token, max_length=255)), + ('expired', models.BooleanField(default=False)), + ('access_token', models.OneToOneField(related_name='refresh_token', to='provider.AccessToken')), + ('client', models.ForeignKey(to='provider.Client')), + ('user', models.ForeignKey(to=settings.AUTH_USER_MODEL)), + ], + ), + migrations.AddField( + model_name='accesstoken', + name='client', + field=models.ForeignKey(to='provider.Client'), + ), + migrations.AddField( + model_name='accesstoken', + name='user', + field=models.ForeignKey(to=settings.AUTH_USER_MODEL), + ), + ] diff --git a/dmt/migrations/provider/__init__.py b/dmt/migrations/provider/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/dmt/settings_shared.py b/dmt/settings_shared.py index c6088349b..7cf6a99b3 100644 --- a/dmt/settings_shared.py +++ b/dmt/settings_shared.py @@ -234,3 +234,9 @@ MESSAGE_TAGS = { messages.ERROR: 'danger' } + +PROVIDER_APPLICATION_MODEL = 'provider.Application' + +MIGRATION_MODULES = { + 'provider': 'dmt.migrations.provider', +}