/access/migrations/0001_initial.py

https://gitlab.com/caraclarke/passit-backend · Python · 100 lines · 92 code · 6 blank · 2 comment · 0 complexity · 8bb5c6009234f3ceb7d60b00d7c175ee MD5 · raw file

  1. # -*- coding: utf-8 -*-
  2. # Generated by Django 1.9.6 on 2016-05-07 16:13
  3. from __future__ import unicode_literals
  4. import access.models
  5. from django.conf import settings
  6. import django.core.validators
  7. from django.db import migrations, models
  8. import django.db.models.deletion
  9. import django.utils.timezone
  10. class Migration(migrations.Migration):
  11. initial = True
  12. dependencies = [
  13. ]
  14. operations = [
  15. migrations.CreateModel(
  16. name='User',
  17. fields=[
  18. ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
  19. ('password', models.CharField(max_length=128, verbose_name='password')),
  20. ('last_login', models.DateTimeField(blank=True, null=True, verbose_name='last login')),
  21. ('first_name', models.CharField(blank=True, max_length=30, verbose_name='first name')),
  22. ('last_name', models.CharField(blank=True, max_length=30, verbose_name='last name')),
  23. ('email', models.EmailField(max_length=254, unique=True, verbose_name='email address')),
  24. ('is_staff', models.BooleanField(default=False, help_text='Designates whether the user can log into this admin site.', verbose_name='staff status')),
  25. ('is_active', models.BooleanField(default=True, help_text='Designates whether this user should be treated as active. Unselect this instead of deleting accounts.', verbose_name='active')),
  26. ('date_joined', models.DateTimeField(default=django.utils.timezone.now, verbose_name='date joined')),
  27. ('client_alg', models.CharField(default='SHA256', max_length=20)),
  28. ('client_iterations', models.PositiveIntegerField(default=24000, validators=[django.core.validators.MinValueValidator(10000)])),
  29. ('client_salt', models.CharField(max_length=512, validators=[django.core.validators.MinLengthValidator(12)])),
  30. ('public_key', access.models.PublicKeyField(max_length=900, validators=[django.core.validators.RegexValidator(message='Not a public key', regex='^-----BEGIN (RSA )?PUBLIC KEY-----.*'), django.core.validators.RegexValidator(message='Not a public key', regex='.*-----END (RSA )?PUBLIC KEY-----$'), django.core.validators.MinLengthValidator(400)])),
  31. ('private_key', models.TextField(help_text='Must be encrypted using passphrase', max_length=8000, validators=[django.core.validators.RegexValidator(message='Not a private key', regex='^-----BEGIN ENCRYPTED PRIVATE KEY-----.*'), django.core.validators.RegexValidator(message='Not a private key', regex='.*-----END ENCRYPTED PRIVATE KEY-----$'), django.core.validators.MinLengthValidator(1500)])),
  32. ],
  33. options={
  34. 'verbose_name_plural': 'users',
  35. 'verbose_name': 'user',
  36. },
  37. managers=[
  38. ('objects', access.models.UserManager()),
  39. ],
  40. ),
  41. migrations.CreateModel(
  42. name='Group',
  43. fields=[
  44. ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
  45. ('name', models.CharField(max_length=1000)),
  46. ('slug', models.SlugField(default='default-slug', max_length=1000)),
  47. ('public_key', access.models.PublicKeyField(max_length=900, validators=[django.core.validators.RegexValidator(message='Not a public key', regex='^-----BEGIN (RSA )?PUBLIC KEY-----.*'), django.core.validators.RegexValidator(message='Not a public key', regex='.*-----END (RSA )?PUBLIC KEY-----$'), django.core.validators.MinLengthValidator(400)])),
  48. ],
  49. options={
  50. 'verbose_name': 'Group',
  51. },
  52. ),
  53. migrations.CreateModel(
  54. name='GroupUser',
  55. fields=[
  56. ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
  57. ('is_group_admin', models.BooleanField(default=False, help_text='Is able to add/remove members')),
  58. ('key_ciphertext', access.models.CiphertextField(validators=[django.core.validators.MinLengthValidator(400)])),
  59. ('private_key_ciphertext', access.models.CiphertextField(validators=[django.core.validators.MinLengthValidator(400)])),
  60. ('group', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='access.Group')),
  61. ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
  62. ],
  63. ),
  64. migrations.CreateModel(
  65. name='Organization',
  66. fields=[
  67. ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
  68. ('name', models.CharField(max_length=1000)),
  69. ],
  70. ),
  71. migrations.AddField(
  72. model_name='group',
  73. name='organization',
  74. field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='access.Organization'),
  75. ),
  76. migrations.AddField(
  77. model_name='group',
  78. name='users',
  79. field=models.ManyToManyField(blank=True, related_name='groups', through='access.GroupUser', to=settings.AUTH_USER_MODEL),
  80. ),
  81. migrations.AddField(
  82. model_name='user',
  83. name='organizations',
  84. field=models.ManyToManyField(blank=True, to='access.Organization'),
  85. ),
  86. migrations.AlterUniqueTogether(
  87. name='groupuser',
  88. unique_together=set([('user', 'group')]),
  89. ),
  90. migrations.AlterUniqueTogether(
  91. name='group',
  92. unique_together=set([('name', 'organization')]),
  93. ),
  94. ]