login and auth bug fixed

This commit is contained in:
javad committed 2024-01-23 09:54:38 +03:30
1 parent 89a5d70512
commit 7cd8ff0511
36 files changed
+632 -67

No files matched your search

@@ -0,0 +1,19 @@
# Generated by Django 4.2.1 on 2024-01-22 11:56
from django.db import migrations, models
import uuid
class Migration(migrations.Migration):
dependencies = [
('jwt_auth', '0064_alter_cuserroleloginopt_uuid'),
]
operations = [
migrations.AlterField(
model_name='cuserroleloginopt',
name='uuid',
field=models.UUIDField(default=uuid.UUID('986054d5-6c6a-41c8-8038-509a2f770920'), unique=True),
),
]
@@ -0,0 +1,19 @@
# Generated by Django 4.2.1 on 2024-01-22 12:15
from django.db import migrations, models
import uuid
class Migration(migrations.Migration):
dependencies = [
('jwt_auth', '0065_alter_cuserroleloginopt_uuid'),
]
operations = [
migrations.AlterField(
model_name='cuserroleloginopt',
name='uuid',
field=models.UUIDField(default=uuid.UUID('584844cb-8111-4a12-867a-3d70e30dcfb6'), unique=True),
),
]
@@ -0,0 +1,19 @@
# Generated by Django 4.2.1 on 2024-01-22 12:18
from django.db import migrations, models
import uuid
class Migration(migrations.Migration):
dependencies = [
('jwt_auth', '0066_alter_cuserroleloginopt_uuid'),
]
operations = [
migrations.AlterField(
model_name='cuserroleloginopt',
name='uuid',
field=models.UUIDField(default=uuid.UUID('c7bc67b3-1e7d-401d-bf08-313aeefa7d5a'), unique=True),
),
]
@@ -0,0 +1,19 @@
# Generated by Django 4.2.1 on 2024-01-22 12:27
from django.db import migrations, models
import uuid
class Migration(migrations.Migration):
dependencies = [
('jwt_auth', '0067_alter_cuserroleloginopt_uuid'),
]
operations = [
migrations.AlterField(
model_name='cuserroleloginopt',
name='uuid',
field=models.UUIDField(default=uuid.UUID('06719a2e-9a73-40eb-8cb5-0b0c7c84a02a'), unique=True),
),
]
@@ -0,0 +1,27 @@
# Generated by Django 4.2.1 on 2024-01-23 05:00
from django.conf import settings
from django.db import migrations, models
import django.db.models.deletion
import uuid
class Migration(migrations.Migration):
dependencies = [
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
('jwt_auth', '0068_alter_cuserroleloginopt_uuid'),
]
operations = [
migrations.AddField(
model_name='cuserroleloginopt',
name='cuser',
field=models.ForeignKey(blank=True, default=None, null=True, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL),
),
migrations.AlterField(
model_name='cuserroleloginopt',
name='uuid',
field=models.UUIDField(default=uuid.UUID('a2dc6ce3-baa8-4757-a3d7-5bd2f3536bee'), unique=True),
),
]
@@ -0,0 +1,19 @@
# Generated by Django 4.2.1 on 2024-01-23 05:12
from django.db import migrations, models
import uuid
class Migration(migrations.Migration):
dependencies = [
('jwt_auth', '0069_cuserroleloginopt_cuser_alter_cuserroleloginopt_uuid'),
]
operations = [
migrations.AlterField(
model_name='cuserroleloginopt',
name='uuid',
field=models.UUIDField(default=uuid.UUID('962e1abb-3dd5-42dc-a749-7004ed7324cf'), unique=True),
),
]
@@ -0,0 +1,19 @@
# Generated by Django 4.2.1 on 2024-01-23 05:15
from django.db import migrations, models
import uuid
class Migration(migrations.Migration):
dependencies = [
('jwt_auth', '0070_alter_cuserroleloginopt_uuid'),
]
operations = [
migrations.AlterField(
model_name='cuserroleloginopt',
name='uuid',
field=models.UUIDField(default=uuid.UUID('7cd27c2c-3ce2-47c1-875d-eb840112f4e9'), unique=True),
),
]
@@ -0,0 +1,19 @@
# Generated by Django 4.2.1 on 2024-01-23 05:15
from django.db import migrations, models
import uuid
class Migration(migrations.Migration):
dependencies = [
('jwt_auth', '0071_alter_cuserroleloginopt_uuid'),
]
operations = [
migrations.AlterField(
model_name='cuserroleloginopt',
name='uuid',
field=models.UUIDField(default=uuid.UUID('a3e7aa0d-2516-4035-9b23-943f9e3b992e'), unique=True),
),
]
+1
View File
@@ -20,5 +20,6 @@ class JwtToken(models.Model):
class CUserRoleLoginOpt(models.Model):
cuser_role = models.ForeignKey(CuserRoleModel, on_delete=models.CASCADE)
cuser = models.ForeignKey(CUser, null=True, blank=True, default=None, on_delete=models.CASCADE)
expire = models.DateTimeField(null=False, blank=False)
uuid = models.UUIDField(default=uuid.uuid4(), unique=True, null=False, blank=False)
+4 -4
View File
@@ -28,6 +28,7 @@ def login_by_username(username: str, password: str) -> CUserRoleLoginOpt:
user_role_opt = CUserRoleLoginOpt()
user_role_opt.cuser_role = user_role_obj
user_role_opt.cuser = user_role_obj.cuser
user_role_opt.expire = expire_datetime
user_role_opt.uuid = uuid.uuid4()
user_role_opt.save()
@@ -47,9 +48,7 @@ def login_by_username(username: str, password: str) -> CUserRoleLoginOpt:
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"})
exists_cuser = CUser.objects.get(mobile=mobile)
random_number = random.randint(100000, 999999)
@@ -70,7 +69,7 @@ def verify_mobile_and_get_token(mobile: int, opt: int) -> CUserRoleLoginOpt:
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)
cuser_roles = CuserRoleModel.objects.filter(cuser__mobile=mobile, is_active=True)
CUserRoleLoginOpt.objects.filter(cuser_role__in=cuser_roles).delete()
if cuser_roles:
@@ -79,6 +78,7 @@ def verify_mobile_and_get_token(mobile: int, opt: int) -> CUserRoleLoginOpt:
user_role_opt = CUserRoleLoginOpt()
user_role_opt.cuser_role = user_role_obj
user_role_opt.cuser = user_role_obj.cuser
user_role_opt.expire = expire_datetime
user_role_opt.uuid = uuid.uuid4()
user_role_opt.save()
+13 -11
View File
@@ -50,12 +50,8 @@ class VerifyMobileAndGetTokenView(APIView):
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)
@@ -140,9 +136,12 @@ class CustomTokenObtainPairView(APIView):
try:
user_login_opt = CUserRoleLoginOpt.objects.get(uuid=uuid_opt)
user = user_login_opt.cuser_role.cuser
user = user_login_opt.cuser
cuser_role = user_login_opt.cuser_role
workspace = cuser_role.sys_ws
if user_login_opt:
refresh = RefreshToken.for_user(user)
@@ -151,15 +150,15 @@ class CustomTokenObtainPairView(APIView):
#print(cuser_role.uuid)
try:
customerObj = CustomerModel.objects.get(cuser_role__uuid=str(cuser_role.uuid))
'''try:
#customerObj = CustomerModel.objects.get(cuser_role__uuid=str(cuser_role.uuid))
# workspace = customerObj.sys_ws
#workspace = WorkspaceModel.objects.get(cuser_role_owner__uuid=str(cuser_role.uuid))
workspace = cuser_role.sys_ws
workspace = customerObj.sys_ws
except:
operator = CustomerResponsibleModel.objects.get(cuser_role=cuser_role)
workspace = operator.sys_ws
workspace = operator.sys_ws'''
refresh['workspace_uuid'] = str(workspace.uuid)
@@ -174,7 +173,10 @@ class CustomTokenObtainPairView(APIView):
cuser=user, cuser_role=cuser_role)
jwt_db.save()
CUserRoleLoginOpt.objects.filter(cuser_role__cuser=user).delete()
try:
CUserRoleLoginOpt.objects.filter(cuser=user).delete()
except Exception as exp:
pass
except Exception as exp:
return Response({'error': str(exp)})