Commit 8dda9d48 authored by Gladys Forte's avatar Gladys Forte

forgot pass

parent d3c08d95
...@@ -19,6 +19,7 @@ from django.conf import settings ...@@ -19,6 +19,7 @@ from django.conf import settings
from app.helper.email_service import sender from app.helper.email_service import sender
from app.applicationlayer.utils import main_threading from app.applicationlayer.utils import main_threading
from rest_framework.exceptions import ParseError from rest_framework.exceptions import ParseError
from datetime import timedelta
class Login(ObtainAuthToken): class Login(ObtainAuthToken):
...@@ -131,7 +132,7 @@ class ForgotPassword(APIView): ...@@ -131,7 +132,7 @@ class ForgotPassword(APIView):
REF = 'AUTH' REF = 'AUTH'
TOKEN = '' TOKEN = ''
TIMEOUT = 3600 # TIMEOUT = 3600
PASSCODE = 0 PASSCODE = 0
# Generate Random token for TOKEN # Generate Random token for TOKEN
...@@ -144,16 +145,20 @@ class ForgotPassword(APIView): ...@@ -144,16 +145,20 @@ class ForgotPassword(APIView):
rands.append(randrange(10)) rands.append(randrange(10))
rands.append(randrange(10)) rands.append(randrange(10))
PASSCODE = f"{rands[0]}{rands[1]}{rands[2]}{rands[3]}" PASSCODE = f"{rands[0]}{rands[1]}{rands[2]}{rands[3]}"
date_now = datetime.now()
timeout_at = date_now + timedelta(seconds=3600)
AuthToken( AuthToken(
ref=REF, ref=REF,
token=TOKEN, token=TOKEN,
passcode=PASSCODE, passcode=PASSCODE,
timeout=TIMEOUT,
is_active=True, is_active=True,
user=existingUser, user=existingUser,
created=date_now,
timeout_at=timeout_at
).save() ).save()
url = f"{settings.FRONT_END_URL}/forgot-password/reset"\ url = f"{settings.FRONT_END_URL}/forgot-password/reset"\
f"?token={TOKEN}" f"?token={TOKEN}"
......
...@@ -85,7 +85,7 @@ urlpatterns = [ ...@@ -85,7 +85,7 @@ urlpatterns = [
path('form-user-list/', UserListForm.as_view(), name="User List"), path('form-user-list/', UserListForm.as_view(), name="User List"),
path('template-user-list/', UserListTemplate.as_view(), name="User List"), path('template-user-list/', UserListTemplate.as_view(), name="User List"),
# filter endpoints under Allowed Companies table # filter endpoints under Allowed Companies table
# path('reminder/', reminder.ReminderTriggerAPIView.as_view()), path('reminder/', reminder.ReminderTriggerAPIView.as_view()),
# path('cancelled/', cancel.CancelTriggerAPIView.as_view()), # path('cancelled/', cancel.CancelTriggerAPIView.as_view()),
] ]
......
# Generated by Django 2.2 on 2019-10-15 17:21
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('entities', '0018_canceltrigger_overduetrigger_remindertrigger'),
]
operations = [
migrations.RemoveField(
model_name='authtoken',
name='timeout',
),
migrations.AddField(
model_name='authtoken',
name='created',
field=models.DateTimeField(blank=True, null=True),
),
migrations.AddField(
model_name='authtoken',
name='timeout_at',
field=models.DateTimeField(blank=True, null=True),
),
]
...@@ -7,6 +7,7 @@ from django.dispatch import receiver ...@@ -7,6 +7,7 @@ from django.dispatch import receiver
from datetime import datetime from datetime import datetime
from . import enums from . import enums
from django.utils.text import slugify from django.utils.text import slugify
from datetime import timedelta
# ********************* AUTH TABLES ********************* # ********************* AUTH TABLES *********************
...@@ -326,11 +327,12 @@ class AuthToken(models.Model): ...@@ -326,11 +327,12 @@ class AuthToken(models.Model):
ref = models.CharField(max_length=255) ref = models.CharField(max_length=255)
token = models.TextField() token = models.TextField()
passcode = models.CharField(max_length=255) passcode = models.CharField(max_length=255)
timeout = models.IntegerField()
is_active = models.BooleanField(default=False) is_active = models.BooleanField(default=False)
user = models.ForeignKey(User, to_field='code', user = models.ForeignKey(User, to_field='code',
related_name='auth_access_token', related_name='auth_access_token',
on_delete=models.PROTECT) on_delete=models.PROTECT)
created = models.DateTimeField(blank=True, null=True)
timeout_at = models.DateTimeField(blank=True, null=True)
class Meta: class Meta:
db_table = 'auth_access_token' db_table = 'auth_access_token'
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment