first
This commit is contained in:
commit
89a5d70512
284 files changed
+8364
No files matched your search
Whitespace-only changes.
@@ -0,0 +1,17 @@
|
||||
from django.contrib import admin
|
||||
from apps.jwt_auth.models import (
|
||||
JwtToken as JwtTokenModel,
|
||||
CUserRoleLoginOpt as CUserRoleLoginOptModel,
|
||||
)
|
||||
|
||||
# Register your models here.
|
||||
|
||||
|
||||
@admin.register(JwtTokenModel)
|
||||
class JwtTokenAdmin(admin.ModelAdmin):
|
||||
pass
|
||||
|
||||
|
||||
@admin.register(CUserRoleLoginOptModel)
|
||||
class CUserRoleLoginOptAdmin(admin.ModelAdmin):
|
||||
pass
|
||||
@@ -0,0 +1,6 @@
|
||||
from django.apps import AppConfig
|
||||
|
||||
|
||||
class AuthConfig(AppConfig):
|
||||
default_auto_field = 'django.db.models.BigAutoField'
|
||||
name = 'apps.jwt_auth'
|
||||
@@ -0,0 +1,28 @@
|
||||
# Generated by Django 4.2.1 on 2023-07-23 11:23
|
||||
|
||||
from django.conf import settings
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
initial = True
|
||||
|
||||
dependencies = [
|
||||
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name='JwtToken',
|
||||
fields=[
|
||||
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('refresh', models.CharField(max_length=350)),
|
||||
('access', models.CharField(blank=True, max_length=350, null=True)),
|
||||
('expire', models.DateTimeField(blank=True, null=True)),
|
||||
('is_blocked', models.BooleanField(default=False)),
|
||||
('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
|
||||
],
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,25 @@
|
||||
# Generated by Django 4.2.1 on 2023-07-23 11:45
|
||||
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('cuser', '0002_roletype_cuserrole'),
|
||||
('jwt_auth', '0001_initial'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RenameField(
|
||||
model_name='jwttoken',
|
||||
old_name='user',
|
||||
new_name='cuser',
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='jwttoken',
|
||||
name='cuser_role',
|
||||
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='cuser.cuserrole'),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,20 @@
|
||||
# Generated by Django 4.2.1 on 2023-07-23 11:45
|
||||
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('cuser', '0002_roletype_cuserrole'),
|
||||
('jwt_auth', '0002_rename_user_jwttoken_cuser_jwttoken_cuser_role'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='jwttoken',
|
||||
name='cuser_role',
|
||||
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='cuser.cuserrole'),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,25 @@
|
||||
# Generated by Django 4.2.1 on 2023-07-24 07:53
|
||||
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
import uuid
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('cuser', '0002_roletype_cuserrole'),
|
||||
('jwt_auth', '0003_alter_jwttoken_cuser_role'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name='CUserRoleLoginOpt',
|
||||
fields=[
|
||||
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('expire', models.DateTimeField()),
|
||||
('uuid', models.UUIDField(default=uuid.UUID('37c7f6dd-cba7-4960-ae50-3849df2f7403'), unique=True)),
|
||||
('cuser_role', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='cuser.cuserrole')),
|
||||
],
|
||||
),
|
||||
]
|
||||
+29
@@ -0,0 +1,29 @@
|
||||
# Generated by Django 4.2.1 on 2023-08-07 08:37
|
||||
|
||||
from django.db import migrations, models
|
||||
import uuid
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('jwt_auth', '0004_cuserroleloginopt'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='cuserroleloginopt',
|
||||
name='uuid',
|
||||
field=models.UUIDField(default=uuid.UUID('49367381-4117-42f8-a300-4ea7fdefe797'), unique=True),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='jwttoken',
|
||||
name='access',
|
||||
field=models.CharField(blank=True, max_length=500, null=True),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='jwttoken',
|
||||
name='refresh',
|
||||
field=models.CharField(max_length=500),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,19 @@
|
||||
# Generated by Django 4.2.1 on 2023-08-07 12:00
|
||||
|
||||
from django.db import migrations, models
|
||||
import uuid
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('jwt_auth', '0005_alter_cuserroleloginopt_uuid_alter_jwttoken_access_and_more'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='cuserroleloginopt',
|
||||
name='uuid',
|
||||
field=models.UUIDField(default=uuid.UUID('d747675e-0e3c-49d2-ac17-ee32b8669a56'), unique=True),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,19 @@
|
||||
# Generated by Django 4.2.1 on 2023-08-07 12:03
|
||||
|
||||
from django.db import migrations, models
|
||||
import uuid
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('jwt_auth', '0006_alter_cuserroleloginopt_uuid'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='cuserroleloginopt',
|
||||
name='uuid',
|
||||
field=models.UUIDField(default=uuid.UUID('a688bf23-0a6c-4080-b31e-e67b96bae559'), unique=True),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,19 @@
|
||||
# Generated by Django 4.2.1 on 2023-08-08 08:37
|
||||
|
||||
from django.db import migrations, models
|
||||
import uuid
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('jwt_auth', '0007_alter_cuserroleloginopt_uuid'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='cuserroleloginopt',
|
||||
name='uuid',
|
||||
field=models.UUIDField(default=uuid.UUID('d78832c8-ecf7-43a9-b26f-76095fb09b69'), unique=True),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,19 @@
|
||||
# Generated by Django 4.2.1 on 2023-08-08 08:44
|
||||
|
||||
from django.db import migrations, models
|
||||
import uuid
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('jwt_auth', '0008_alter_cuserroleloginopt_uuid'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='cuserroleloginopt',
|
||||
name='uuid',
|
||||
field=models.UUIDField(default=uuid.UUID('541dd0c2-e8e3-40fe-94e3-71c54f258e31'), unique=True),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,19 @@
|
||||
# Generated by Django 4.2.1 on 2023-08-08 08:48
|
||||
|
||||
from django.db import migrations, models
|
||||
import uuid
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('jwt_auth', '0009_alter_cuserroleloginopt_uuid'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='cuserroleloginopt',
|
||||
name='uuid',
|
||||
field=models.UUIDField(default=uuid.UUID('de316bc9-33a1-433f-a169-b033ceee4189'), unique=True),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,19 @@
|
||||
# Generated by Django 4.2.1 on 2023-08-08 08:48
|
||||
|
||||
from django.db import migrations, models
|
||||
import uuid
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('jwt_auth', '0010_alter_cuserroleloginopt_uuid'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='cuserroleloginopt',
|
||||
name='uuid',
|
||||
field=models.UUIDField(default=uuid.UUID('22233ca2-ac64-459d-acae-61ce323085e4'), unique=True),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,19 @@
|
||||
# Generated by Django 4.2.1 on 2023-08-10 05:19
|
||||
|
||||
from django.db import migrations, models
|
||||
import uuid
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('jwt_auth', '0011_alter_cuserroleloginopt_uuid'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='cuserroleloginopt',
|
||||
name='uuid',
|
||||
field=models.UUIDField(default=uuid.UUID('3de52e99-5b0d-4de3-853a-c5f356edcee2'), unique=True),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,19 @@
|
||||
# Generated by Django 4.2.1 on 2023-08-10 05:39
|
||||
|
||||
from django.db import migrations, models
|
||||
import uuid
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('jwt_auth', '0012_alter_cuserroleloginopt_uuid'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='cuserroleloginopt',
|
||||
name='uuid',
|
||||
field=models.UUIDField(default=uuid.UUID('8b8db649-32ea-4d85-bd7f-70f37023dc83'), unique=True),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,19 @@
|
||||
# Generated by Django 4.2.1 on 2023-08-13 05:45
|
||||
|
||||
from django.db import migrations, models
|
||||
import uuid
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('jwt_auth', '0013_alter_cuserroleloginopt_uuid'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='cuserroleloginopt',
|
||||
name='uuid',
|
||||
field=models.UUIDField(default=uuid.UUID('d04a18c0-3728-45f5-a24d-368f35760491'), unique=True),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,19 @@
|
||||
# Generated by Django 4.2.1 on 2023-08-13 05:51
|
||||
|
||||
from django.db import migrations, models
|
||||
import uuid
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('jwt_auth', '0014_alter_cuserroleloginopt_uuid'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='cuserroleloginopt',
|
||||
name='uuid',
|
||||
field=models.UUIDField(default=uuid.UUID('e2754ac6-d826-412b-830c-36824044059a'), unique=True),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,19 @@
|
||||
# Generated by Django 4.2.1 on 2023-08-13 05:52
|
||||
|
||||
from django.db import migrations, models
|
||||
import uuid
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('jwt_auth', '0015_alter_cuserroleloginopt_uuid'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='cuserroleloginopt',
|
||||
name='uuid',
|
||||
field=models.UUIDField(default=uuid.UUID('0c143a3f-9352-4091-9166-3a36b259712d'), unique=True),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,19 @@
|
||||
# Generated by Django 4.2.1 on 2023-08-13 05:55
|
||||
|
||||
from django.db import migrations, models
|
||||
import uuid
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('jwt_auth', '0016_alter_cuserroleloginopt_uuid'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='cuserroleloginopt',
|
||||
name='uuid',
|
||||
field=models.UUIDField(default=uuid.UUID('e0cfd6f4-e278-4a1c-9d86-9d0ae5609feb'), unique=True),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,19 @@
|
||||
# Generated by Django 4.2.1 on 2023-08-13 05:55
|
||||
|
||||
from django.db import migrations, models
|
||||
import uuid
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('jwt_auth', '0017_alter_cuserroleloginopt_uuid'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='cuserroleloginopt',
|
||||
name='uuid',
|
||||
field=models.UUIDField(default=uuid.UUID('e78b913c-d449-4a86-bd1f-f62f14891c6e'), unique=True),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,19 @@
|
||||
# Generated by Django 4.2.1 on 2023-08-14 05:48
|
||||
|
||||
from django.db import migrations, models
|
||||
import uuid
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('jwt_auth', '0018_alter_cuserroleloginopt_uuid'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='cuserroleloginopt',
|
||||
name='uuid',
|
||||
field=models.UUIDField(default=uuid.UUID('fc09e8f3-8f33-408e-85c6-1f152d18d553'), unique=True),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,19 @@
|
||||
# Generated by Django 4.2.1 on 2023-08-14 05:49
|
||||
|
||||
from django.db import migrations, models
|
||||
import uuid
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('jwt_auth', '0019_alter_cuserroleloginopt_uuid'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='cuserroleloginopt',
|
||||
name='uuid',
|
||||
field=models.UUIDField(default=uuid.UUID('762e49d2-f2e7-4fe1-a13b-22c5870b45ff'), unique=True),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,19 @@
|
||||
# Generated by Django 4.2.1 on 2023-08-19 12:54
|
||||
|
||||
from django.db import migrations, models
|
||||
import uuid
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('jwt_auth', '0020_alter_cuserroleloginopt_uuid'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='cuserroleloginopt',
|
||||
name='uuid',
|
||||
field=models.UUIDField(default=uuid.UUID('b3c6473e-841d-42f7-82bf-0f32ea31cdff'), unique=True),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,19 @@
|
||||
# Generated by Django 4.2.1 on 2023-08-20 08:10
|
||||
|
||||
from django.db import migrations, models
|
||||
import uuid
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('jwt_auth', '0021_alter_cuserroleloginopt_uuid'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='cuserroleloginopt',
|
||||
name='uuid',
|
||||
field=models.UUIDField(default=uuid.UUID('d8115499-21f1-4bfd-a716-fd70fdb7e250'), unique=True),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,19 @@
|
||||
# Generated by Django 4.2.1 on 2023-10-22 06:55
|
||||
|
||||
from django.db import migrations, models
|
||||
import uuid
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('jwt_auth', '0022_alter_cuserroleloginopt_uuid'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='cuserroleloginopt',
|
||||
name='uuid',
|
||||
field=models.UUIDField(default=uuid.UUID('7cc5a6b6-2729-4e2b-b03e-aa29cc66befe'), unique=True),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,19 @@
|
||||
# Generated by Django 4.2.1 on 2023-10-22 07:00
|
||||
|
||||
from django.db import migrations, models
|
||||
import uuid
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('jwt_auth', '0023_alter_cuserroleloginopt_uuid'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='cuserroleloginopt',
|
||||
name='uuid',
|
||||
field=models.UUIDField(default=uuid.UUID('f1b3355e-44b6-4fed-869d-1f264cf2888e'), unique=True),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,19 @@
|
||||
# Generated by Django 4.2.1 on 2023-10-22 07:20
|
||||
|
||||
from django.db import migrations, models
|
||||
import uuid
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('jwt_auth', '0024_alter_cuserroleloginopt_uuid'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='cuserroleloginopt',
|
||||
name='uuid',
|
||||
field=models.UUIDField(default=uuid.UUID('ac36e3e3-c59d-4db2-9fa9-3602dddb5a06'), unique=True),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,19 @@
|
||||
# Generated by Django 4.2.1 on 2023-12-20 10:41
|
||||
|
||||
from django.db import migrations, models
|
||||
import uuid
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('jwt_auth', '0025_alter_cuserroleloginopt_uuid'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='cuserroleloginopt',
|
||||
name='uuid',
|
||||
field=models.UUIDField(default=uuid.UUID('d2983df9-8544-4517-9f87-6c5eac1ae08d'), unique=True),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,19 @@
|
||||
# Generated by Django 4.2.1 on 2023-12-20 11:32
|
||||
|
||||
from django.db import migrations, models
|
||||
import uuid
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('jwt_auth', '0026_alter_cuserroleloginopt_uuid'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='cuserroleloginopt',
|
||||
name='uuid',
|
||||
field=models.UUIDField(default=uuid.UUID('1d347d2e-e288-4646-a03a-a8ac30f6d941'), unique=True),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,19 @@
|
||||
# Generated by Django 4.2.1 on 2023-12-24 06:43
|
||||
|
||||
from django.db import migrations, models
|
||||
import uuid
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('jwt_auth', '0027_alter_cuserroleloginopt_uuid'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='cuserroleloginopt',
|
||||
name='uuid',
|
||||
field=models.UUIDField(default=uuid.UUID('fe63de9e-93c0-4138-87c3-da38fd98ce3d'), unique=True),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,19 @@
|
||||
# Generated by Django 4.2.1 on 2023-12-24 06:43
|
||||
|
||||
from django.db import migrations, models
|
||||
import uuid
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('jwt_auth', '0028_alter_cuserroleloginopt_uuid'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='cuserroleloginopt',
|
||||
name='uuid',
|
||||
field=models.UUIDField(default=uuid.UUID('73ce073c-a35d-4517-a7eb-82fcfc46df02'), unique=True),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,19 @@
|
||||
# Generated by Django 4.2.1 on 2023-12-24 06:44
|
||||
|
||||
from django.db import migrations, models
|
||||
import uuid
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('jwt_auth', '0029_alter_cuserroleloginopt_uuid'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='cuserroleloginopt',
|
||||
name='uuid',
|
||||
field=models.UUIDField(default=uuid.UUID('c038407d-b9a8-46bc-be64-110dce94ef24'), unique=True),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,19 @@
|
||||
# Generated by Django 4.2.1 on 2023-12-24 06:49
|
||||
|
||||
from django.db import migrations, models
|
||||
import uuid
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('jwt_auth', '0030_alter_cuserroleloginopt_uuid'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='cuserroleloginopt',
|
||||
name='uuid',
|
||||
field=models.UUIDField(default=uuid.UUID('48aeb395-3ca3-4d86-8b4b-48e4ac33fdc0'), unique=True),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,19 @@
|
||||
# Generated by Django 4.2.1 on 2023-12-24 06:54
|
||||
|
||||
from django.db import migrations, models
|
||||
import uuid
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('jwt_auth', '0031_alter_cuserroleloginopt_uuid'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='cuserroleloginopt',
|
||||
name='uuid',
|
||||
field=models.UUIDField(default=uuid.UUID('a7685a15-7e73-4bd5-9a26-61f218c3fee8'), unique=True),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,19 @@
|
||||
# Generated by Django 4.2.1 on 2023-12-24 06:55
|
||||
|
||||
from django.db import migrations, models
|
||||
import uuid
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('jwt_auth', '0032_alter_cuserroleloginopt_uuid'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='cuserroleloginopt',
|
||||
name='uuid',
|
||||
field=models.UUIDField(default=uuid.UUID('4fae2729-617a-4b63-a8dd-f767d3ddca1d'), unique=True),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,19 @@
|
||||
# Generated by Django 4.2.1 on 2023-12-24 07:04
|
||||
|
||||
from django.db import migrations, models
|
||||
import uuid
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('jwt_auth', '0033_alter_cuserroleloginopt_uuid'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='cuserroleloginopt',
|
||||
name='uuid',
|
||||
field=models.UUIDField(default=uuid.UUID('7b45d40b-1ae5-4ef6-9e96-c7d663590faa'), unique=True),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,19 @@
|
||||
# Generated by Django 4.2.1 on 2023-12-24 07:09
|
||||
|
||||
from django.db import migrations, models
|
||||
import uuid
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('jwt_auth', '0034_alter_cuserroleloginopt_uuid'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='cuserroleloginopt',
|
||||
name='uuid',
|
||||
field=models.UUIDField(default=uuid.UUID('1775f974-b6fa-42f8-86e9-7e70488ff983'), unique=True),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,19 @@
|
||||
# Generated by Django 4.2.1 on 2023-12-24 07:11
|
||||
|
||||
from django.db import migrations, models
|
||||
import uuid
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('jwt_auth', '0035_alter_cuserroleloginopt_uuid'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='cuserroleloginopt',
|
||||
name='uuid',
|
||||
field=models.UUIDField(default=uuid.UUID('e0ab2d69-5a5d-497f-a1ef-35472005e935'), unique=True),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,19 @@
|
||||
# Generated by Django 4.2.1 on 2023-12-25 08:53
|
||||
|
||||
from django.db import migrations, models
|
||||
import uuid
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('jwt_auth', '0036_alter_cuserroleloginopt_uuid'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='cuserroleloginopt',
|
||||
name='uuid',
|
||||
field=models.UUIDField(default=uuid.UUID('ed6a4531-68e1-4c30-a2eb-07340ab502c3'), unique=True),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,19 @@
|
||||
# Generated by Django 4.2.1 on 2024-01-01 11:05
|
||||
|
||||
from django.db import migrations, models
|
||||
import uuid
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('jwt_auth', '0037_alter_cuserroleloginopt_uuid'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='cuserroleloginopt',
|
||||
name='uuid',
|
||||
field=models.UUIDField(default=uuid.UUID('c9472e6e-8808-47a2-a156-c850c9a17b58'), unique=True),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,19 @@
|
||||
# Generated by Django 4.2.1 on 2024-01-01 11:07
|
||||
|
||||
from django.db import migrations, models
|
||||
import uuid
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('jwt_auth', '0038_alter_cuserroleloginopt_uuid'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='cuserroleloginopt',
|
||||
name='uuid',
|
||||
field=models.UUIDField(default=uuid.UUID('536eb30f-f56d-4e5f-9c4a-b193418f9571'), unique=True),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,19 @@
|
||||
# Generated by Django 4.2.1 on 2024-01-01 11:08
|
||||
|
||||
from django.db import migrations, models
|
||||
import uuid
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('jwt_auth', '0039_alter_cuserroleloginopt_uuid'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='cuserroleloginopt',
|
||||
name='uuid',
|
||||
field=models.UUIDField(default=uuid.UUID('8bf5e304-391f-4365-868b-cf852d8337b4'), unique=True),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,19 @@
|
||||
# Generated by Django 4.2.1 on 2024-01-05 07:11
|
||||
|
||||
from django.db import migrations, models
|
||||
import uuid
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('jwt_auth', '0040_alter_cuserroleloginopt_uuid'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='cuserroleloginopt',
|
||||
name='uuid',
|
||||
field=models.UUIDField(default=uuid.UUID('c63107f7-41d6-41f9-95c7-3fbbcbde82ac'), unique=True),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,19 @@
|
||||
# Generated by Django 4.2.1 on 2024-01-07 15:15
|
||||
|
||||
from django.db import migrations, models
|
||||
import uuid
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('jwt_auth', '0041_alter_cuserroleloginopt_uuid'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='cuserroleloginopt',
|
||||
name='uuid',
|
||||
field=models.UUIDField(default=uuid.UUID('7ac2bbe1-3ce1-4853-b906-da5590eed9d4'), unique=True),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,19 @@
|
||||
# Generated by Django 4.2.1 on 2024-01-07 15:15
|
||||
|
||||
from django.db import migrations, models
|
||||
import uuid
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('jwt_auth', '0042_alter_cuserroleloginopt_uuid'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='cuserroleloginopt',
|
||||
name='uuid',
|
||||
field=models.UUIDField(default=uuid.UUID('407a4a55-76ba-4611-bf61-24f2f713595c'), unique=True),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,19 @@
|
||||
# Generated by Django 4.2.1 on 2024-01-08 11:53
|
||||
|
||||
from django.db import migrations, models
|
||||
import uuid
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('jwt_auth', '0043_alter_cuserroleloginopt_uuid'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='cuserroleloginopt',
|
||||
name='uuid',
|
||||
field=models.UUIDField(default=uuid.UUID('b6c9dce8-5169-49f2-82c5-dc814655c94a'), unique=True),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,19 @@
|
||||
# Generated by Django 4.2.1 on 2024-01-09 10:05
|
||||
|
||||
from django.db import migrations, models
|
||||
import uuid
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('jwt_auth', '0044_alter_cuserroleloginopt_uuid'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='cuserroleloginopt',
|
||||
name='uuid',
|
||||
field=models.UUIDField(default=uuid.UUID('6a39c5ae-4e05-4a55-a473-4a1387898c43'), unique=True),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,19 @@
|
||||
# Generated by Django 4.2.1 on 2024-01-10 12:08
|
||||
|
||||
from django.db import migrations, models
|
||||
import uuid
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('jwt_auth', '0045_alter_cuserroleloginopt_uuid'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='cuserroleloginopt',
|
||||
name='uuid',
|
||||
field=models.UUIDField(default=uuid.UUID('eb7ded6a-97d9-42ff-b10e-8106ccbf8916'), unique=True),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,19 @@
|
||||
# Generated by Django 4.2.1 on 2024-01-13 10:29
|
||||
|
||||
from django.db import migrations, models
|
||||
import uuid
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('jwt_auth', '0046_alter_cuserroleloginopt_uuid'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='cuserroleloginopt',
|
||||
name='uuid',
|
||||
field=models.UUIDField(default=uuid.UUID('922fd49d-4f1a-4523-aad4-9b562f2be187'), unique=True),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,19 @@
|
||||
# Generated by Django 4.2.1 on 2024-01-13 10:31
|
||||
|
||||
from django.db import migrations, models
|
||||
import uuid
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('jwt_auth', '0047_alter_cuserroleloginopt_uuid'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='cuserroleloginopt',
|
||||
name='uuid',
|
||||
field=models.UUIDField(default=uuid.UUID('ef5272f4-66af-4ceb-ace8-8b640e257d4b'), unique=True),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,19 @@
|
||||
# Generated by Django 4.2.1 on 2024-01-13 10:35
|
||||
|
||||
from django.db import migrations, models
|
||||
import uuid
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('jwt_auth', '0048_alter_cuserroleloginopt_uuid'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='cuserroleloginopt',
|
||||
name='uuid',
|
||||
field=models.UUIDField(default=uuid.UUID('e92b9df9-508c-4cb1-bde0-d5f6bdb2edea'), unique=True),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,19 @@
|
||||
# Generated by Django 4.2.1 on 2024-01-13 15:42
|
||||
|
||||
from django.db import migrations, models
|
||||
import uuid
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('jwt_auth', '0049_alter_cuserroleloginopt_uuid'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='cuserroleloginopt',
|
||||
name='uuid',
|
||||
field=models.UUIDField(default=uuid.UUID('411f5d2e-f1ab-4108-ad0f-dbe13334790a'), unique=True),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,19 @@
|
||||
# Generated by Django 4.2.1 on 2024-01-13 15:45
|
||||
|
||||
from django.db import migrations, models
|
||||
import uuid
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('jwt_auth', '0050_alter_cuserroleloginopt_uuid'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='cuserroleloginopt',
|
||||
name='uuid',
|
||||
field=models.UUIDField(default=uuid.UUID('b4517f89-fc70-4ed3-b6f2-39fa57de3458'), unique=True),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,19 @@
|
||||
# Generated by Django 4.2.1 on 2024-01-18 08:40
|
||||
|
||||
from django.db import migrations, models
|
||||
import uuid
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('jwt_auth', '0051_alter_cuserroleloginopt_uuid'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='cuserroleloginopt',
|
||||
name='uuid',
|
||||
field=models.UUIDField(default=uuid.UUID('f8d12231-67f0-497a-82e6-27f89b0e563f'), unique=True),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,19 @@
|
||||
# Generated by Django 4.2.1 on 2024-01-20 07:49
|
||||
|
||||
from django.db import migrations, models
|
||||
import uuid
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('jwt_auth', '0052_alter_cuserroleloginopt_uuid'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='cuserroleloginopt',
|
||||
name='uuid',
|
||||
field=models.UUIDField(default=uuid.UUID('36727b78-5687-4b52-9e16-203c91f2eefb'), unique=True),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,19 @@
|
||||
# Generated by Django 4.2.1 on 2024-01-21 08:06
|
||||
|
||||
from django.db import migrations, models
|
||||
import uuid
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('jwt_auth', '0053_alter_cuserroleloginopt_uuid'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='cuserroleloginopt',
|
||||
name='uuid',
|
||||
field=models.UUIDField(default=uuid.UUID('993d0c0d-30c1-4a28-b254-b931ac01f37b'), unique=True),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,19 @@
|
||||
# Generated by Django 4.2.1 on 2024-01-21 08:07
|
||||
|
||||
from django.db import migrations, models
|
||||
import uuid
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('jwt_auth', '0054_alter_cuserroleloginopt_uuid'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='cuserroleloginopt',
|
||||
name='uuid',
|
||||
field=models.UUIDField(default=uuid.UUID('3f2d5e83-6d3a-42d7-85c8-2ca542124ace'), unique=True),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,19 @@
|
||||
# Generated by Django 4.2.1 on 2024-01-21 08:07
|
||||
|
||||
from django.db import migrations, models
|
||||
import uuid
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('jwt_auth', '0055_alter_cuserroleloginopt_uuid'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='cuserroleloginopt',
|
||||
name='uuid',
|
||||
field=models.UUIDField(default=uuid.UUID('b5b8ec0c-3cc7-40f9-876c-d7baa65c6603'), unique=True),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,19 @@
|
||||
# Generated by Django 4.2.1 on 2024-01-21 08:09
|
||||
|
||||
from django.db import migrations, models
|
||||
import uuid
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('jwt_auth', '0056_alter_cuserroleloginopt_uuid'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='cuserroleloginopt',
|
||||
name='uuid',
|
||||
field=models.UUIDField(default=uuid.UUID('c362cd5f-83e4-4f12-be55-14fbcd67b9bb'), unique=True),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,19 @@
|
||||
# Generated by Django 4.2.1 on 2024-01-21 08:10
|
||||
|
||||
from django.db import migrations, models
|
||||
import uuid
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('jwt_auth', '0057_alter_cuserroleloginopt_uuid'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='cuserroleloginopt',
|
||||
name='uuid',
|
||||
field=models.UUIDField(default=uuid.UUID('6165ce5c-0732-481b-9a8b-10c6f2cebe4c'), unique=True),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,19 @@
|
||||
# Generated by Django 4.2.1 on 2024-01-21 09:15
|
||||
|
||||
from django.db import migrations, models
|
||||
import uuid
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('jwt_auth', '0058_alter_cuserroleloginopt_uuid'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='cuserroleloginopt',
|
||||
name='uuid',
|
||||
field=models.UUIDField(default=uuid.UUID('f461debd-f9bd-44c6-a5f0-757f82516af4'), unique=True),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,19 @@
|
||||
# Generated by Django 4.2.1 on 2024-01-21 09:16
|
||||
|
||||
from django.db import migrations, models
|
||||
import uuid
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('jwt_auth', '0059_alter_cuserroleloginopt_uuid'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='cuserroleloginopt',
|
||||
name='uuid',
|
||||
field=models.UUIDField(default=uuid.UUID('6d83fcfc-f119-40d5-84e9-6df33c793575'), unique=True),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,19 @@
|
||||
# Generated by Django 4.2.1 on 2024-01-21 12:43
|
||||
|
||||
from django.db import migrations, models
|
||||
import uuid
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('jwt_auth', '0060_alter_cuserroleloginopt_uuid'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='cuserroleloginopt',
|
||||
name='uuid',
|
||||
field=models.UUIDField(default=uuid.UUID('d68a4b99-efd6-4faa-817a-07ccd11be546'), unique=True),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,19 @@
|
||||
# Generated by Django 4.2.1 on 2024-01-21 12:44
|
||||
|
||||
from django.db import migrations, models
|
||||
import uuid
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('jwt_auth', '0061_alter_cuserroleloginopt_uuid'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='cuserroleloginopt',
|
||||
name='uuid',
|
||||
field=models.UUIDField(default=uuid.UUID('8c4b6fce-b089-445d-96cf-613e7e55b24f'), unique=True),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,19 @@
|
||||
# Generated by Django 4.2.1 on 2024-01-21 12:45
|
||||
|
||||
from django.db import migrations, models
|
||||
import uuid
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('jwt_auth', '0062_alter_cuserroleloginopt_uuid'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='cuserroleloginopt',
|
||||
name='uuid',
|
||||
field=models.UUIDField(default=uuid.UUID('22c19f40-7107-493b-b382-f5e4e001e598'), unique=True),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,19 @@
|
||||
# Generated by Django 4.2.1 on 2024-01-21 12:59
|
||||
|
||||
from django.db import migrations, models
|
||||
import uuid
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('jwt_auth', '0063_alter_cuserroleloginopt_uuid'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='cuserroleloginopt',
|
||||
name='uuid',
|
||||
field=models.UUIDField(default=uuid.UUID('1d75453f-f5e9-4d15-ad6b-a0efd104bcb6'), unique=True),
|
||||
),
|
||||
]
|
||||
Whitespace-only changes.
@@ -0,0 +1,24 @@
|
||||
from django.db import models
|
||||
from django.contrib.auth import get_user_model
|
||||
from apps.cuser.models import CuserRole as CuserRoleModel
|
||||
import uuid
|
||||
CUser = get_user_model()
|
||||
# Create your models here.
|
||||
|
||||
|
||||
class JwtToken(models.Model):
|
||||
refresh = models.CharField(max_length=500, null=False, blank=False)
|
||||
access = models.CharField(max_length=500, null=True, blank=True)
|
||||
expire = models.DateTimeField(null=True, blank=True)
|
||||
cuser = models.ForeignKey(CUser, null=False, blank=False, on_delete=models.CASCADE)
|
||||
cuser_role = models.ForeignKey(CuserRoleModel, null=False, blank=False, on_delete=models.CASCADE)
|
||||
is_blocked = models.BooleanField(default=False)
|
||||
|
||||
def __str__(self):
|
||||
return f'{self.cuser}'
|
||||
|
||||
|
||||
class CUserRoleLoginOpt(models.Model):
|
||||
cuser_role = models.ForeignKey(CuserRoleModel, on_delete=models.CASCADE)
|
||||
expire = models.DateTimeField(null=False, blank=False)
|
||||
uuid = models.UUIDField(default=uuid.uuid4(), unique=True, null=False, blank=False)
|
||||
@@ -0,0 +1,15 @@
|
||||
from rest_framework_simplejwt.serializers import TokenObtainPairSerializer
|
||||
from rest_framework_simplejwt.views import TokenObtainPairView
|
||||
|
||||
|
||||
class CustomTokenObtainPairSerializer(TokenObtainPairSerializer):
|
||||
@classmethod
|
||||
def get_token(cls, user):
|
||||
token = super().get_token(user)
|
||||
|
||||
token['user_uuid'] = user.uuid
|
||||
|
||||
if 'user_id' in token:
|
||||
del token['user_id']
|
||||
|
||||
return token
|
||||
@@ -0,0 +1,90 @@
|
||||
import uuid
|
||||
import random
|
||||
from django.contrib.auth import get_user_model
|
||||
from apps.jwt_auth.models import CUserRoleLoginOpt
|
||||
from apps.cuser.models import CuserRole as CuserRoleModel, SmsOpt as SmsOptModel
|
||||
from django.utils import timezone
|
||||
from rest_framework import exceptions
|
||||
CUser = get_user_model()
|
||||
|
||||
|
||||
def login_by_username(username: str, password: str) -> CUserRoleLoginOpt:
|
||||
try:
|
||||
print(username)
|
||||
user = CUser.objects.get(username=username)
|
||||
print(user)
|
||||
if user and user.check_password(password):
|
||||
|
||||
cuser_roles = CuserRoleModel.objects.filter(cuser=user)
|
||||
CUserRoleLoginOpt.objects.filter(cuser_role__cuser=user).delete()
|
||||
|
||||
if cuser_roles:
|
||||
for user_role_obj in cuser_roles:
|
||||
|
||||
if not (user_role_obj.is_active and user_role_obj.mobile_verify):
|
||||
raise exceptions.ValidationError({"error": 'Not a valid user'})
|
||||
|
||||
expire_datetime = timezone.datetime.now() + timezone.timedelta(minutes=5)
|
||||
|
||||
user_role_opt = CUserRoleLoginOpt()
|
||||
user_role_opt.cuser_role = user_role_obj
|
||||
user_role_opt.expire = expire_datetime
|
||||
user_role_opt.uuid = uuid.uuid4()
|
||||
user_role_opt.save()
|
||||
|
||||
login_opts = CUserRoleLoginOpt.objects.filter(cuser_role__cuser=user)
|
||||
return login_opts
|
||||
|
||||
else:
|
||||
raise exceptions.ValidationError({'error': "User not have role"})
|
||||
else:
|
||||
raise exceptions.ValidationError({'error': "Username or password is not correct"})
|
||||
|
||||
except CUser.DoesNotExist:
|
||||
raise exceptions.ValidationError({'error': "Username or password is not correct"})
|
||||
|
||||
|
||||
def login_by_mobile(mobile: int):
|
||||
try:
|
||||
|
||||
exists_cuser_roles = CuserRoleModel.objects.filter(mobile=mobile, mobile_verify=True)
|
||||
if not len(exists_cuser_roles) >= 1:
|
||||
raise exceptions.ValidationError({'error': "mobile not found"})
|
||||
|
||||
random_number = random.randint(100000, 999999)
|
||||
|
||||
try:
|
||||
SmsOptModel.objects.filter(mobile=mobile).delete()
|
||||
except Exception as exp:
|
||||
pass
|
||||
|
||||
opt_code = SmsOptModel(mobile=mobile, opt=123456)
|
||||
opt_code.save()
|
||||
|
||||
except Exception as exp:
|
||||
raise exceptions.ValidationError({'error': "mobile not found"})
|
||||
|
||||
|
||||
def verify_mobile_and_get_token(mobile: int, opt: int) -> CUserRoleLoginOpt:
|
||||
try:
|
||||
opt_obj = SmsOptModel.objects.filter(mobile=mobile, opt=opt)[0]
|
||||
|
||||
if opt_obj:
|
||||
cuser_roles = CuserRoleModel.objects.filter(mobile=mobile, mobile_verify=True, is_active=True)
|
||||
CUserRoleLoginOpt.objects.filter(cuser_role__in=cuser_roles).delete()
|
||||
|
||||
if cuser_roles:
|
||||
for user_role_obj in cuser_roles:
|
||||
expire_datetime = timezone.datetime.now() + timezone.timedelta(minutes=5)
|
||||
|
||||
user_role_opt = CUserRoleLoginOpt()
|
||||
user_role_opt.cuser_role = user_role_obj
|
||||
user_role_opt.expire = expire_datetime
|
||||
user_role_opt.uuid = uuid.uuid4()
|
||||
user_role_opt.save()
|
||||
|
||||
login_opts = CUserRoleLoginOpt.objects.filter(cuser_role__in=cuser_roles)
|
||||
SmsOptModel.objects.filter(mobile=mobile).delete()
|
||||
return login_opts
|
||||
except Exception as exp:
|
||||
raise exceptions.ValidationError({'error': "cannot verify this mobile and opt code:"+str(exp)})
|
||||
@@ -0,0 +1,3 @@
|
||||
from django.test import TestCase
|
||||
|
||||
# Create your tests here.
|
||||
@@ -0,0 +1,16 @@
|
||||
from django.urls import path
|
||||
from apps.jwt_auth.views import (
|
||||
CustomTokenRefreshView,
|
||||
CustomTokenObtainPairView,
|
||||
LoginByUserView,
|
||||
LoginByMobileView,
|
||||
VerifyMobileAndGetTokenView
|
||||
)
|
||||
|
||||
urlpatterns = [
|
||||
path('login/username/', LoginByUserView.as_view(), name='login_by_username'),
|
||||
path('login/mobile/', LoginByMobileView.as_view(), name='login_by_mobile'),
|
||||
path('login/mobile/verify/', VerifyMobileAndGetTokenView.as_view(), name='verify_mobile'),
|
||||
path('token/', CustomTokenObtainPairView.as_view(), name='token_obtain_pair'),
|
||||
path('token/refresh/', CustomTokenRefreshView.as_view(), name='token_refresh'),
|
||||
]
|
||||
@@ -0,0 +1,295 @@
|
||||
from django.shortcuts import render
|
||||
from django.utils import timezone
|
||||
from rest_framework.views import APIView
|
||||
from rest_framework import serializers
|
||||
from rest_framework.response import Response
|
||||
from django.db import transaction
|
||||
from apps.jwt_auth.models import JwtToken as JwtTokenModel, CUserRoleLoginOpt
|
||||
from apps.cuser.models import CuserRole as CuserRoleModel, RoleType as RoleTypeModel
|
||||
from apps.customer.models import Customer as CustomerModel, CustomerResponsible as CustomerResponsibleModel
|
||||
from rest_framework_simplejwt.tokens import RefreshToken, AccessToken, Token
|
||||
from rest_framework_simplejwt.authentication import JWTAuthentication
|
||||
from apps.workspace.models import Workspace as WorkspaceModel
|
||||
from apps.jwt_auth.services import login_by_username, login_by_mobile, verify_mobile_and_get_token
|
||||
from django.contrib.auth import get_user_model
|
||||
from rest_framework import status
|
||||
CUser = get_user_model()
|
||||
|
||||
# Create your views here.
|
||||
|
||||
|
||||
class VerifyMobileAndGetTokenView(APIView):
|
||||
|
||||
class InputSerializer(serializers.Serializer):
|
||||
mobile = serializers.IntegerField(required=True)
|
||||
opt = serializers.IntegerField(required=True)
|
||||
|
||||
|
||||
class OutputSerializer(serializers.ModelSerializer):
|
||||
|
||||
class CUserRoleSerializer(serializers.ModelSerializer):
|
||||
|
||||
class RoleTypeSerializer(serializers.ModelSerializer):
|
||||
class Meta:
|
||||
model = RoleTypeModel
|
||||
fields = ('role_name', )
|
||||
|
||||
role_type = RoleTypeSerializer()
|
||||
|
||||
class Meta:
|
||||
model = CuserRoleModel
|
||||
fields = ('name_family', 'title', 'role_type')
|
||||
|
||||
cuser_role = CUserRoleSerializer()
|
||||
|
||||
class Meta:
|
||||
model = CUserRoleLoginOpt
|
||||
fields = ('cuser_role', 'expire', 'uuid')
|
||||
|
||||
def post(self, request):
|
||||
serializer = self.InputSerializer(data=request.data)
|
||||
serializer.is_valid(raise_exception=True)
|
||||
|
||||
print("ok")
|
||||
|
||||
login_opts = verify_mobile_and_get_token(**serializer.validated_data)
|
||||
|
||||
print("ok2")
|
||||
|
||||
response_data = self.OutputSerializer(login_opts, many=True).data
|
||||
|
||||
return Response(response_data)
|
||||
|
||||
|
||||
class LoginByMobileView(APIView):
|
||||
|
||||
class InputSerializer(serializers.Serializer):
|
||||
mobile = serializers.IntegerField(required=True)
|
||||
|
||||
def post(self, request):
|
||||
serializer = self.InputSerializer(data=request.data)
|
||||
serializer.is_valid(raise_exception=True)
|
||||
|
||||
login_by_mobile(**serializer.validated_data)
|
||||
|
||||
output = {
|
||||
"result": {
|
||||
"mobile": serializer.validated_data.get('mobile'),
|
||||
"message": "opt code send"
|
||||
}
|
||||
}
|
||||
|
||||
return Response(output)
|
||||
|
||||
|
||||
class LoginByUserView(APIView):
|
||||
|
||||
class InputSerializer(serializers.Serializer):
|
||||
username = serializers.CharField(required=True)
|
||||
password = serializers.CharField(required=True)
|
||||
|
||||
class OutputSerializer(serializers.ModelSerializer):
|
||||
|
||||
class CUserRoleSerializer(serializers.ModelSerializer):
|
||||
|
||||
class RoleTypeSerializer(serializers.ModelSerializer):
|
||||
class Meta:
|
||||
model = RoleTypeModel
|
||||
fields = ('role_name', )
|
||||
|
||||
role_type = RoleTypeSerializer()
|
||||
|
||||
class Meta:
|
||||
model = CuserRoleModel
|
||||
fields = ('name_family', 'title', 'role_type')
|
||||
|
||||
cuser_role = CUserRoleSerializer()
|
||||
|
||||
class Meta:
|
||||
model = CUserRoleLoginOpt
|
||||
fields = ('cuser_role', 'expire', 'uuid')
|
||||
|
||||
def post(self, request):
|
||||
serializer = self.InputSerializer(data=request.data)
|
||||
serializer.is_valid(raise_exception=True)
|
||||
|
||||
username = serializer.validated_data.get('username')
|
||||
password = serializer.validated_data.get('password')
|
||||
|
||||
login_opts = login_by_username(username=username, password=password)
|
||||
|
||||
response_data = self.OutputSerializer(login_opts, many=True).data
|
||||
|
||||
return Response(response_data)
|
||||
|
||||
|
||||
class CustomTokenObtainPairView(APIView):
|
||||
|
||||
class InputSerializer(serializers.Serializer):
|
||||
uuid_opt = serializers.CharField(required=True)
|
||||
|
||||
class OutputSerializer(serializers.Serializer):
|
||||
access = serializers.CharField(required=True)
|
||||
refresh = serializers.CharField(required=True)
|
||||
|
||||
def post(self, request):
|
||||
serializer = self.InputSerializer(data=request.data)
|
||||
serializer.is_valid(raise_exception=True)
|
||||
|
||||
uuid_opt = serializer.validated_data.get('uuid_opt')
|
||||
|
||||
try:
|
||||
user_login_opt = CUserRoleLoginOpt.objects.get(uuid=uuid_opt)
|
||||
user = user_login_opt.cuser_role.cuser
|
||||
cuser_role = user_login_opt.cuser_role
|
||||
|
||||
if user_login_opt:
|
||||
refresh = RefreshToken.for_user(user)
|
||||
|
||||
#if 'user_id' in refresh:
|
||||
# del refresh['user_id']
|
||||
#print(cuser_role.uuid)
|
||||
|
||||
|
||||
try:
|
||||
customerObj = CustomerModel.objects.get(cuser_role__uuid=str(cuser_role.uuid))
|
||||
|
||||
#workspace = WorkspaceModel.objects.get(cuser_role_owner__uuid=str(cuser_role.uuid))
|
||||
|
||||
workspace = customerObj.sys_ws
|
||||
except:
|
||||
operator = CustomerResponsibleModel.objects.get(cuser_role=cuser_role)
|
||||
workspace = operator.sys_ws
|
||||
|
||||
refresh['workspace_uuid'] = str(workspace.uuid)
|
||||
|
||||
refresh['cuser_role_uuid'] = str(cuser_role.uuid)
|
||||
|
||||
refresh['user_uuid'] = str(user.uuid)
|
||||
|
||||
#print(str(refresh))
|
||||
|
||||
try:
|
||||
jwt_db = JwtTokenModel(refresh=str(refresh), access=str(refresh.access_token),
|
||||
cuser=user, cuser_role=cuser_role)
|
||||
jwt_db.save()
|
||||
|
||||
CUserRoleLoginOpt.objects.filter(cuser_role__cuser=user).delete()
|
||||
|
||||
except Exception as exp:
|
||||
return Response({'error': str(exp)})
|
||||
|
||||
new_token_data = {
|
||||
'refresh': str(refresh),
|
||||
'access': str(refresh.access_token),
|
||||
}
|
||||
|
||||
out_data = self.OutputSerializer(data=new_token_data)
|
||||
out_data.is_valid(raise_exception=True)
|
||||
|
||||
return Response(out_data.data)
|
||||
else:
|
||||
return Response({"error": 'userpass is not True'})
|
||||
except CUserRoleLoginOpt.DoesNotExist:
|
||||
return Response({"error": 'Token not valid'})
|
||||
except Exception as exp:
|
||||
return Response({"error": 'user or pass is not true 2'})
|
||||
|
||||
|
||||
class CustomTokenRefreshView(APIView):
|
||||
|
||||
class InputSerializer(serializers.Serializer):
|
||||
refresh = serializers.CharField(required=True)
|
||||
|
||||
class OutputSerializer(serializers.Serializer):
|
||||
access = serializers.CharField(required=True)
|
||||
refresh = serializers.CharField(required=True)
|
||||
|
||||
def post(self, request):
|
||||
with transaction.atomic():
|
||||
try:
|
||||
|
||||
serializer = self.InputSerializer(data=request.data)
|
||||
serializer.is_valid(raise_exception=True)
|
||||
|
||||
refresh_token = serializer.validated_data.get('refresh')
|
||||
|
||||
print(refresh_token)
|
||||
|
||||
# check: token is valid?
|
||||
ref_token = RefreshToken(token=refresh_token)
|
||||
|
||||
print("ref")
|
||||
|
||||
# first token must exists in whitelist and not blocked
|
||||
token_exist = JwtTokenModel.objects.get(refresh=str(refresh_token))
|
||||
|
||||
print("exsist")
|
||||
|
||||
token_is_blocked = JwtTokenModel.objects.get(refresh=str(refresh_token)).is_blocked
|
||||
|
||||
print("yess")
|
||||
|
||||
if token_exist and token_is_blocked is False:
|
||||
JwtTokenModel.objects.get(refresh=str(refresh_token)).delete()
|
||||
else:
|
||||
raise ValueError('refresh token is not in whitelist or blocked!')
|
||||
|
||||
user_uuid = ref_token.payload.get('user_uuid')
|
||||
user_id = ref_token.payload.get('user_id')
|
||||
cuser_role_uuid = ref_token.payload.get('cuser_role_uuid')
|
||||
|
||||
token_exp_timestamp = ref_token.payload.get('exp')
|
||||
token_exp = timezone.make_aware(timezone.datetime.fromtimestamp(token_exp_timestamp), timezone.utc)
|
||||
user = CUser.objects.get(id=user_id)
|
||||
cuser_role = CuserRoleModel.objects.get(uuid=cuser_role_uuid)
|
||||
|
||||
|
||||
print("OKH###")
|
||||
|
||||
if ref_token:
|
||||
new_token = RefreshToken.for_user(user)
|
||||
|
||||
#if 'user_id' in new_token:
|
||||
#del new_token['user_id']
|
||||
|
||||
new_token['user_uuid'] = str(user.uuid)
|
||||
new_token['cuser_role_uuid'] = str(cuser_role.uuid)
|
||||
|
||||
print("OKOKKO 555")
|
||||
|
||||
#workspace = WorkspaceModel.objects.get(cuser_role_owner__uuid=str(cuser_role.uuid))
|
||||
|
||||
try:
|
||||
customerObj = CustomerModel.objects.get(cuser_role__uuid=str(cuser_role.uuid))
|
||||
new_token['workspace_uuid'] = str(customerObj.sys_ws.uuid)
|
||||
except:
|
||||
operator = CustomerResponsibleModel.objects.get(cuser_role__uuid=str(cuser_role.uuid))
|
||||
new_token['workspace_uuid'] = str(operator.sys_ws.uuid)
|
||||
|
||||
|
||||
new_access_token = new_token.access_token
|
||||
|
||||
new_token_data = {
|
||||
'refresh': str(new_token),
|
||||
'access': str(new_access_token),
|
||||
}
|
||||
|
||||
print("OKOKKO")
|
||||
|
||||
new_token_obj = JwtTokenModel(refresh=str(new_token),
|
||||
access=str(new_token_data.get('access')),
|
||||
expire=token_exp,
|
||||
cuser=user,
|
||||
cuser_role=cuser_role
|
||||
)
|
||||
|
||||
print("OKOKKO 222")
|
||||
new_token_obj.save()
|
||||
out_data = self.OutputSerializer(data=new_token_data)
|
||||
out_data.is_valid(raise_exception=True)
|
||||
return Response(out_data.data)
|
||||
|
||||
except Exception as e:
|
||||
transaction.set_rollback(True)
|
||||
return Response({"error": str(e)})
|
||||
Reference in new issue
Block a user