123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105 |
- # Generated by Django 3.2.10 on 2021-12-17 22:56
- from django.conf import settings
- from django.db import migrations, models
- import django.db.models.deletion
- import django.db.models.expressions
- class Migration(migrations.Migration):
- dependencies = [
- ("desecapi", "0017_alter_user_limit_domains"),
- ]
- operations = [
- migrations.AlterField(
- model_name="token",
- name="user",
- field=models.ForeignKey(
- on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL
- ),
- ),
- migrations.CreateModel(
- name="TokenDomainPolicy",
- fields=[
- (
- "id",
- models.BigAutoField(
- auto_created=True,
- primary_key=True,
- serialize=False,
- verbose_name="ID",
- ),
- ),
- ("perm_dyndns", models.BooleanField(default=False)),
- ("perm_rrsets", models.BooleanField(default=False)),
- (
- "domain",
- models.ForeignKey(
- null=True,
- on_delete=django.db.models.deletion.CASCADE,
- to="desecapi.domain",
- ),
- ),
- (
- "token",
- models.ForeignKey(
- on_delete=django.db.models.deletion.CASCADE, to="desecapi.token"
- ),
- ),
- (
- "token_user",
- models.ForeignKey(
- db_constraint=False,
- on_delete=django.db.models.deletion.CASCADE,
- related_name="+",
- to=settings.AUTH_USER_MODEL,
- ),
- ),
- ],
- ),
- migrations.AddField(
- model_name="token",
- name="domain_policies",
- field=models.ManyToManyField(
- through="desecapi.TokenDomainPolicy", to="desecapi.Domain"
- ),
- ),
- migrations.AddConstraint(
- model_name="tokendomainpolicy",
- constraint=models.UniqueConstraint(
- fields=("token", "domain"), name="unique_entry"
- ),
- ),
- migrations.AddConstraint(
- model_name="tokendomainpolicy",
- constraint=models.UniqueConstraint(
- condition=models.Q(("domain__isnull", True)),
- fields=("token",),
- name="unique_entry_null_domain",
- ),
- ),
- # The remaining operations ensure that domain.owner and token.user can't be inconsistent
- migrations.AlterModelOptions(
- name="token",
- options={},
- ),
- migrations.AddConstraint(
- model_name="token",
- constraint=models.UniqueConstraint(
- fields=("id", "user"), name="unique_id_user"
- ),
- ),
- migrations.AddConstraint(
- model_name="domain",
- constraint=models.UniqueConstraint(
- fields=("id", "owner"), name="unique_id_owner"
- ),
- ),
- migrations.RunSQL(
- "ALTER TABLE desecapi_tokendomainpolicy"
- " ADD FOREIGN KEY ( domain_id, token_user_id ) REFERENCES desecapi_domain ( id, owner_id ),"
- " ADD FOREIGN KEY ( token_id, token_user_id ) REFERENCES desecapi_token ( id, user_id );",
- migrations.RunSQL.noop,
- ),
- ]
|