This commit is contained in:
javad committed 2024-01-22 13:01:42 +03:30
commit 89a5d70512
284 files changed
+8364

No files matched your search

View File
Whitespace-only changes.
+17
View File
@@ -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
+6
View File
@@ -0,0 +1,6 @@
from django.apps import AppConfig
class AuthConfig(AppConfig):
default_auto_field = 'django.db.models.BigAutoField'
name = 'apps.jwt_auth'
+28
View File
@@ -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')),
],
),
]
@@ -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.
+24
View File
@@ -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)
+15
View File
@@ -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
+90
View File
@@ -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)})
+3
View File
@@ -0,0 +1,3 @@
from django.test import TestCase
# Create your tests here.
+16
View File
@@ -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'),
]
+295
View File
@@ -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)})