From b0bda6bdca744e0bf659a47e2498e2e8d97a05a0 Mon Sep 17 00:00:00 2001 From: realaravinth Date: Fri, 10 Jun 2022 22:28:30 +0530 Subject: [PATCH] feat: utils for random text generation and verification email sending --- accounts/utils.py | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 accounts/utils.py diff --git a/accounts/utils.py b/accounts/utils.py new file mode 100644 index 0000000..ba6e81e --- /dev/null +++ b/accounts/utils.py @@ -0,0 +1,38 @@ +# Copyright © 2022 Aravinth Manivannan +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +from django.utils.crypto import get_random_string +from django.core.mail import send_mail + + +def gen_secret() -> str: + """ + Generate random secret + """ + return get_random_string(32) + + +def send_verification_email(request, challenge): + verification_link = ( + f"{request.scheme}://{request.get_host()}{challenge.verification_link()}" + ) + + email = challenge.owned_by.email + + send_mail( + subject="[Hostea] Please confirm your email address", + message=f"Please confirm your email address {email}.\n {verification_link}", + from_email="No reply Hostea", # TODO read from settings.py + recipient_list=[email], + )