12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- # 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
- ),
- ]
|