Skip to content
Snippets Groups Projects
0014_oauth.py 7.21 KiB
Newer Older
  • Learn to ignore specific revisions
  • # Generated by Django 2.0.9 on 2018-12-06 10:08
    
    from django.db import migrations, models
    import django.db.models.deletion
    from django.conf import settings
    import oauth2_provider.generators
    
    
    class Migration(migrations.Migration):
    
        dependencies = [
            ("users", "0013_auto_20181206_1008"),
            migrations.swappable_dependency(settings.AUTH_USER_MODEL),
        ]
    
        operations = [
            migrations.CreateModel(
                name="AccessToken",
                fields=[
                    ("id", models.BigAutoField(primary_key=True, serialize=False)),
                    ("expires", models.DateTimeField()),
                    ("scope", models.TextField(blank=True)),
                    ("created", models.DateTimeField(auto_now_add=True)),
                    ("updated", models.DateTimeField(auto_now=True)),
                    ("token", models.CharField(max_length=255, unique=True)),
                ],
                options={"abstract": False},
            ),
            migrations.CreateModel(
                name="Application",
                fields=[
                    ("id", models.BigAutoField(primary_key=True, serialize=False)),
                    (
                        "client_id",
                        models.CharField(
                            db_index=True,
                            default=oauth2_provider.generators.generate_client_id,
                            max_length=100,
                            unique=True,
                        ),
                    ),
                    (
                        "redirect_uris",
                        models.TextField(
                            blank=True, help_text="Allowed URIs list, space separated"
                        ),
                    ),
                    (
                        "client_type",
                        models.CharField(
                            choices=[
                                ("confidential", "Confidential"),
                                ("public", "Public"),
                            ],
                            max_length=32,
                        ),
                    ),
                    (
                        "authorization_grant_type",
                        models.CharField(
                            choices=[
                                ("authorization-code", "Authorization code"),
                                ("implicit", "Implicit"),
                                ("password", "Resource owner password-based"),
                                ("client-credentials", "Client credentials"),
                            ],
                            max_length=32,
                        ),
                    ),
                    (
                        "client_secret",
                        models.CharField(
                            blank=True,
                            db_index=True,
                            default=oauth2_provider.generators.generate_client_secret,
                            max_length=255,
                        ),
                    ),
                    ("name", models.CharField(blank=True, max_length=255)),
                    ("skip_authorization", models.BooleanField(default=False)),
                    ("created", models.DateTimeField(auto_now_add=True)),
                    ("updated", models.DateTimeField(auto_now=True)),
                    (
                        "user",
                        models.ForeignKey(
                            blank=True,
                            null=True,
                            on_delete=django.db.models.deletion.CASCADE,
                            related_name="users_application",
                            to=settings.AUTH_USER_MODEL,
                        ),
                    ),
                ],
                options={"abstract": False},
            ),
            migrations.CreateModel(
                name="Grant",
                fields=[
                    ("id", models.BigAutoField(primary_key=True, serialize=False)),
                    ("code", models.CharField(max_length=255, unique=True)),
                    ("expires", models.DateTimeField()),
                    ("redirect_uri", models.CharField(max_length=255)),
                    ("scope", models.TextField(blank=True)),
                    ("created", models.DateTimeField(auto_now_add=True)),
                    ("updated", models.DateTimeField(auto_now=True)),
                    (
                        "application",
                        models.ForeignKey(
                            on_delete=django.db.models.deletion.CASCADE,
                            to="users.Application",
                        ),
                    ),
                    (
                        "user",
                        models.ForeignKey(
                            on_delete=django.db.models.deletion.CASCADE,
                            related_name="users_grant",
                            to=settings.AUTH_USER_MODEL,
                        ),
                    ),
                ],
                options={"abstract": False},
            ),
            migrations.CreateModel(
                name="RefreshToken",
                fields=[
                    ("id", models.BigAutoField(primary_key=True, serialize=False)),
                    ("token", models.CharField(max_length=255)),
                    ("created", models.DateTimeField(auto_now_add=True)),
                    ("updated", models.DateTimeField(auto_now=True)),
                    ("revoked", models.DateTimeField(null=True)),
                    (
                        "access_token",
                        models.OneToOneField(
                            blank=True,
                            null=True,
                            on_delete=django.db.models.deletion.SET_NULL,
                            related_name="refresh_token",
                            to="users.AccessToken",
                        ),
                    ),
                    (
                        "application",
                        models.ForeignKey(
                            on_delete=django.db.models.deletion.CASCADE,
                            to="users.Application",
                        ),
                    ),
                    (
                        "user",
                        models.ForeignKey(
                            on_delete=django.db.models.deletion.CASCADE,
                            related_name="users_refreshtoken",
                            to=settings.AUTH_USER_MODEL,
                        ),
                    ),
                ],
                options={"abstract": False},
            ),
            migrations.AddField(
                model_name="accesstoken",
                name="application",
                field=models.ForeignKey(
                    blank=True,
                    null=True,
                    on_delete=django.db.models.deletion.CASCADE,
                    to="users.Application",
                ),
            ),
            migrations.AddField(
                model_name="accesstoken",
                name="source_refresh_token",
                field=models.OneToOneField(
                    blank=True,
                    null=True,
                    on_delete=django.db.models.deletion.SET_NULL,
                    related_name="refreshed_access_token",
                    to="users.RefreshToken",
                ),
            ),
            migrations.AddField(
                model_name="accesstoken",
                name="user",
                field=models.ForeignKey(
                    blank=True,
                    null=True,
                    on_delete=django.db.models.deletion.CASCADE,
                    related_name="users_accesstoken",
                    to=settings.AUTH_USER_MODEL,
                ),
            ),
            migrations.AlterUniqueTogether(
                name="refreshtoken", unique_together={("token", "revoked")}
            ),
        ]