|
@@ -0,0 +1,210 @@
|
|
|
+# Generated by Django 3.1 on 2020-08-25 14:54
|
|
|
+
|
|
|
+import desecapi.models
|
|
|
+from django.conf import settings
|
|
|
+import django.core.validators
|
|
|
+from django.db import migrations, models
|
|
|
+import django.db.models.deletion
|
|
|
+import re
|
|
|
+import uuid
|
|
|
+
|
|
|
+
|
|
|
+class Migration(migrations.Migration):
|
|
|
+
|
|
|
+ initial = True
|
|
|
+
|
|
|
+ dependencies = [
|
|
|
+ ]
|
|
|
+
|
|
|
+ operations = [
|
|
|
+ migrations.CreateModel(
|
|
|
+ name='User',
|
|
|
+ fields=[
|
|
|
+ ('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)),
|
|
|
+ ('password', models.CharField(max_length=128, verbose_name='password')),
|
|
|
+ ('last_login', models.DateTimeField(blank=True, null=True, verbose_name='last login')),
|
|
|
+ ('email', models.EmailField(max_length=191, unique=True, verbose_name='email address')),
|
|
|
+ ('is_active', models.BooleanField(default=True)),
|
|
|
+ ('is_admin', models.BooleanField(default=False)),
|
|
|
+ ('created', models.DateTimeField(auto_now_add=True)),
|
|
|
+ ('limit_domains', models.IntegerField(blank=True, default=5, null=True)),
|
|
|
+ ],
|
|
|
+ options={
|
|
|
+ 'abstract': False,
|
|
|
+ },
|
|
|
+ ),
|
|
|
+ migrations.CreateModel(
|
|
|
+ name='Domain',
|
|
|
+ fields=[
|
|
|
+ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
|
|
+ ('created', models.DateTimeField(auto_now_add=True)),
|
|
|
+ ('name', models.CharField(max_length=191, unique=True, validators=[desecapi.models.validate_lower, django.core.validators.RegexValidator(code='invalid_domain_name', flags=re.RegexFlag['IGNORECASE'], message='Domain names must be labels separated by dots. Labels may consist of up to 63 letters, digits, hyphens, and underscores. The last label may not contain an underscore.', regex='^(([a-z0-9_-]{1,63})\\.)*[a-z0-9-]{1,63}$')])),
|
|
|
+ ('owner', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='domains', to=settings.AUTH_USER_MODEL)),
|
|
|
+ ('published', models.DateTimeField(blank=True, null=True)),
|
|
|
+ ('minimum_ttl', models.PositiveIntegerField(default=desecapi.models.get_minimum_ttl_default)),
|
|
|
+ ('renewal_changed', models.DateTimeField(auto_now_add=True)),
|
|
|
+ ('renewal_state', models.IntegerField(choices=[(1, 'Fresh'), (2, 'Notified'), (3, 'Warned')], default=1)),
|
|
|
+ ],
|
|
|
+ options={
|
|
|
+ 'ordering': ('created',),
|
|
|
+ },
|
|
|
+ ),
|
|
|
+ migrations.CreateModel(
|
|
|
+ name='RRset',
|
|
|
+ fields=[
|
|
|
+ ('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)),
|
|
|
+ ('created', models.DateTimeField(auto_now_add=True)),
|
|
|
+ ('touched', models.DateTimeField(auto_now=True)),
|
|
|
+ ('subname', models.CharField(blank=True, max_length=178, validators=[desecapi.models.validate_lower, django.core.validators.RegexValidator(code='invalid_subname', message="Subname can only use (lowercase) a-z, 0-9, ., -, and _, may start with a '*.', or just be '*'.", regex='^([*]|(([*][.])?[a-z0-9_.-]*))$')])),
|
|
|
+ ('type', models.CharField(max_length=10, validators=[desecapi.models.validate_upper, django.core.validators.RegexValidator(code='invalid_type', message='Type must be uppercase alphanumeric and start with a letter.', regex='^[A-Z][A-Z0-9]*$')])),
|
|
|
+ ('ttl', models.PositiveIntegerField()),
|
|
|
+ ('domain', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='desecapi.domain')),
|
|
|
+ ],
|
|
|
+ options={
|
|
|
+ 'unique_together': {('domain', 'subname', 'type')},
|
|
|
+ },
|
|
|
+ ),
|
|
|
+ migrations.CreateModel(
|
|
|
+ name='AuthenticatedAction',
|
|
|
+ fields=[
|
|
|
+ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
|
|
+ ],
|
|
|
+ options={
|
|
|
+ 'managed': False,
|
|
|
+ },
|
|
|
+ ),
|
|
|
+ migrations.CreateModel(
|
|
|
+ name='AuthenticatedUserAction',
|
|
|
+ fields=[
|
|
|
+ ('authenticatedaction_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='desecapi.authenticatedaction')),
|
|
|
+ ],
|
|
|
+ options={
|
|
|
+ 'managed': False,
|
|
|
+ },
|
|
|
+ bases=('desecapi.authenticatedaction',),
|
|
|
+ ),
|
|
|
+ migrations.CreateModel(
|
|
|
+ name='AuthenticatedDeleteUserAction',
|
|
|
+ fields=[
|
|
|
+ ('authenticateduseraction_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='desecapi.authenticateduseraction')),
|
|
|
+ ],
|
|
|
+ options={
|
|
|
+ 'managed': False,
|
|
|
+ },
|
|
|
+ bases=('desecapi.authenticateduseraction',),
|
|
|
+ ),
|
|
|
+ migrations.CreateModel(
|
|
|
+ name='AuthenticatedResetPasswordUserAction',
|
|
|
+ fields=[
|
|
|
+ ('authenticateduseraction_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='desecapi.authenticateduseraction')),
|
|
|
+ ('new_password', models.CharField(max_length=128)),
|
|
|
+ ],
|
|
|
+ options={
|
|
|
+ 'managed': False,
|
|
|
+ },
|
|
|
+ bases=('desecapi.authenticateduseraction',),
|
|
|
+ ),
|
|
|
+ migrations.CreateModel(
|
|
|
+ name='Captcha',
|
|
|
+ fields=[
|
|
|
+ ('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)),
|
|
|
+ ('created', models.DateTimeField(auto_now_add=True)),
|
|
|
+ ('content', models.CharField(default=desecapi.models.captcha_default_content, max_length=24)),
|
|
|
+ ],
|
|
|
+ ),
|
|
|
+ migrations.CreateModel(
|
|
|
+ name='Token',
|
|
|
+ fields=[
|
|
|
+ ('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)),
|
|
|
+ ('created', models.DateTimeField(auto_now_add=True, verbose_name='Created')),
|
|
|
+ ('key', models.CharField(db_index=True, max_length=128, unique=True, verbose_name='Key')),
|
|
|
+ ('name', models.CharField(blank=True, max_length=64, verbose_name='Name')),
|
|
|
+ ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='auth_tokens', to=settings.AUTH_USER_MODEL, verbose_name='User')),
|
|
|
+ ('last_used', models.DateTimeField(blank=True, null=True)),
|
|
|
+ ],
|
|
|
+ options={
|
|
|
+ 'verbose_name': 'Token',
|
|
|
+ 'verbose_name_plural': 'Tokens',
|
|
|
+ },
|
|
|
+ ),
|
|
|
+ migrations.CreateModel(
|
|
|
+ name='RR',
|
|
|
+ fields=[
|
|
|
+ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
|
|
+ ('created', models.DateTimeField(auto_now_add=True)),
|
|
|
+ ('content', models.CharField(max_length=500)),
|
|
|
+ ('rrset', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='records', to='desecapi.rrset')),
|
|
|
+ ],
|
|
|
+ ),
|
|
|
+ migrations.CreateModel(
|
|
|
+ name='AuthenticatedActivateUserAction',
|
|
|
+ fields=[
|
|
|
+ ('authenticateduseraction_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='desecapi.authenticateduseraction')),
|
|
|
+ ('domain', models.CharField(max_length=191)),
|
|
|
+ ],
|
|
|
+ options={
|
|
|
+ 'managed': False,
|
|
|
+ },
|
|
|
+ bases=('desecapi.authenticateduseraction',),
|
|
|
+ ),
|
|
|
+ migrations.CreateModel(
|
|
|
+ name='AuthenticatedChangeEmailUserAction',
|
|
|
+ fields=[
|
|
|
+ ('authenticateduseraction_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='desecapi.authenticateduseraction')),
|
|
|
+ ('new_email', models.EmailField(max_length=254)),
|
|
|
+ ],
|
|
|
+ options={
|
|
|
+ 'managed': False,
|
|
|
+ },
|
|
|
+ bases=('desecapi.authenticateduseraction',),
|
|
|
+ ),
|
|
|
+ migrations.CreateModel(
|
|
|
+ name='AuthenticatedBasicUserAction',
|
|
|
+ fields=[
|
|
|
+ ('authenticatedaction_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='desecapi.authenticatedaction')),
|
|
|
+ ],
|
|
|
+ options={
|
|
|
+ 'managed': False,
|
|
|
+ },
|
|
|
+ bases=('desecapi.authenticatedaction',),
|
|
|
+ ),
|
|
|
+ migrations.CreateModel(
|
|
|
+ name='AuthenticatedDomainBasicUserAction',
|
|
|
+ fields=[
|
|
|
+ ('authenticatedbasicuseraction_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='desecapi.authenticatedbasicuseraction')),
|
|
|
+ ],
|
|
|
+ options={
|
|
|
+ 'managed': False,
|
|
|
+ },
|
|
|
+ bases=('desecapi.authenticatedbasicuseraction',),
|
|
|
+ ),
|
|
|
+ migrations.CreateModel(
|
|
|
+ name='AuthenticatedRenewDomainBasicUserAction',
|
|
|
+ fields=[
|
|
|
+ ('authenticateddomainbasicuseraction_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='desecapi.authenticateddomainbasicuseraction')),
|
|
|
+ ],
|
|
|
+ options={
|
|
|
+ 'managed': False,
|
|
|
+ },
|
|
|
+ bases=('desecapi.authenticateddomainbasicuseraction',),
|
|
|
+ ),
|
|
|
+ migrations.CreateModel(
|
|
|
+ name='Donation',
|
|
|
+ fields=[
|
|
|
+ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
|
|
+ ('created', models.DateTimeField(default=desecapi.models.get_default_value_created)),
|
|
|
+ ('name', models.CharField(max_length=255)),
|
|
|
+ ('iban', models.CharField(max_length=34)),
|
|
|
+ ('bic', models.CharField(max_length=11)),
|
|
|
+ ('amount', models.DecimalField(decimal_places=2, max_digits=8)),
|
|
|
+ ('message', models.CharField(blank=True, max_length=255)),
|
|
|
+ ('due', models.DateTimeField(default=desecapi.models.get_default_value_due)),
|
|
|
+ ('mref', models.CharField(default=desecapi.models.get_default_value_mref, max_length=32)),
|
|
|
+ ('email', models.EmailField(blank=True, max_length=255)),
|
|
|
+ ],
|
|
|
+ options={
|
|
|
+ 'ordering': ('created',),
|
|
|
+ 'managed': False,
|
|
|
+ },
|
|
|
+ ),
|
|
|
+ ]
|