initial
This commit is contained in:
commit
45e3c1f698
3462 files changed
+617437
No files matched your search
@@ -0,0 +1,31 @@
|
||||
# utils.py
|
||||
from django.conf import settings
|
||||
import uuid
|
||||
from django.core.mail import send_mail
|
||||
from django.utils import timezone
|
||||
from .models import PasswordResetToken
|
||||
from django.urls import reverse
|
||||
from django.template.loader import render_to_string
|
||||
from django.utils.html import strip_tags
|
||||
from settings.models import websiteSetting
|
||||
|
||||
|
||||
def generate_reset_token_and_send_email(user, request):
|
||||
token = uuid.uuid4() # Generate a UUID4 token
|
||||
expiration_time = timezone.now() + timezone.timedelta(hours=1)
|
||||
reset_token = PasswordResetToken.objects.create(user=user, token=token, expiration_time=expiration_time)
|
||||
|
||||
reset_link = request.build_absolute_uri(reverse('reset_password', args=[str(reset_token.token)]))
|
||||
|
||||
website_settings = websiteSetting.objects.first()
|
||||
subject = "Password Reset"
|
||||
html_message = render_to_string('authenticate/email/password_reset_email.html', {
|
||||
'user': user,
|
||||
'reset_link': reset_link,
|
||||
})
|
||||
plain_message = strip_tags(html_message)
|
||||
from_email = f'"{website_settings.name}" <{settings.EMAIL_HOST_USER}>'
|
||||
recipient_list = [user.email]
|
||||
|
||||
# Send the email with HTML content
|
||||
send_mail(subject, plain_message, from_email, recipient_list, html_message=html_message)
|
||||
Reference in new issue
Block a user