1
0
Fork 0
mirror of https://github.com/Findus23/RPGnotes.git synced 2024-09-19 15:43:45 +02:00
RPGnotes/users/views.py

51 lines
1.8 KiB
Python
Raw Normal View History

2021-09-05 22:04:14 +02:00
from django.contrib import messages
2021-09-24 19:20:09 +02:00
from django.core.mail import mail_admins
2021-09-05 22:04:14 +02:00
from django.urls import reverse_lazy
from django.utils.translation import gettext as _
2021-09-05 22:04:14 +02:00
from django_registration.backends.activation.views import RegistrationView, ActivationView
2021-08-29 00:20:02 +02:00
2021-09-05 22:04:14 +02:00
from users.forms import CustomRegistrationForm
from users.models import TenantUser
class CustomRegistrationView(RegistrationView):
email_body_template = "users/activation_email_body.html"
email_subject_template = "users/activation_email_subject.html"
template_name = "users/registration_form.html"
form_class = CustomRegistrationForm
success_url = reverse_lazy("login")
def create_inactive_user(self, form: CustomRegistrationForm):
"""
Create the inactive user account and send an email containing
activation instructions.
"""
data = form.cleaned_data
new_user = TenantUser.objects.create_user(
email=data.get("email"),
password=data.get("password1"),
name=data.get("name"),
is_active=False
)
2021-09-24 19:20:09 +02:00
mail_admins(f"New User created: {new_user}", "", fail_silently=True)
2021-09-05 22:04:14 +02:00
self.send_activation_email(new_user)
messages.success(self.request,
_("You account was created. Please click the confirmation link in the E-Mail to activate it."))
2021-09-05 22:04:14 +02:00
return new_user
class CustomActivationView(ActivationView):
success_url = reverse_lazy("login")
def activate(self, *args, **kwargs):
username = self.validate_key(kwargs.get("activation_key"))
user: TenantUser = self.get_user(username)
user.is_active = True
user.is_verified = True
user.save()
messages.success(self.request, _("Account was successfully activated. You can log in now."))
2021-09-05 22:04:14 +02:00
return user