Skip to content
Snippets Groups Projects
Commit 11afdd6e authored by salazard's avatar salazard
Browse files

add verification mail

parent 1a7585b5
Branches
No related tags found
1 merge request!61Verification mail
...@@ -38,7 +38,8 @@ DJANGO_APPS = [ ...@@ -38,7 +38,8 @@ DJANGO_APPS = [
'whitenoise.runserver_nostatic', 'whitenoise.runserver_nostatic',
'django.contrib.staticfiles', 'django.contrib.staticfiles',
'django.forms', 'django.forms',
'django.contrib.sites' 'django.contrib.sites',
"verify_email.apps.VerifyEmailConfig",
] ]
THIRD_PARTY_APPS = [ THIRD_PARTY_APPS = [
......
...@@ -10,6 +10,8 @@ from rest_framework.documentation import include_docs_urls ...@@ -10,6 +10,8 @@ from rest_framework.documentation import include_docs_urls
from rest_auth.views import PasswordResetConfirmView from rest_auth.views import PasswordResetConfirmView
urlpatterns = [ urlpatterns = [
# Mail verification
url(r'^verification/', include('verify_email.urls')),
# Admin site # Admin site
url(r'^admin/', admin.site.urls), url(r'^admin/', admin.site.urls),
# Redirect the root to the admin site # Redirect the root to the admin site
......
"""Register serializers.""" """Register serializers."""
from urllib import request
from django.contrib.auth import get_user_model from django.contrib.auth import get_user_model
from rest_framework import serializers from rest_framework import serializers
...@@ -45,14 +46,16 @@ class RegistrationSerializer(serializers.ModelSerializer): ...@@ -45,14 +46,16 @@ class RegistrationSerializer(serializers.ModelSerializer):
""" """
password = validated_data.pop('password') password = validated_data.pop('password')
request = self.context.get("request")
registration = Registration.objects.create(**validated_data) registration = Registration.objects.create(**validated_data)
# Fire a registration_created signal # Fire a registration_created signal
registration_created.send( registration_created.send(
sender=Registration, sender=Registration,
instance=registration, instance=registration,
password=password, password=password,
validated_data=validated_data,
request=request
) )
return registration return registration
......
...@@ -6,27 +6,35 @@ from django.dispatch import Signal, receiver ...@@ -6,27 +6,35 @@ from django.dispatch import Signal, receiver
from profiles.models import Student from profiles.models import Student
from .models import Registration from .models import Registration
from verify_email.email_handler import send_verification_email
from users.forms import UserForm
User = get_user_model() User = get_user_model()
registration_created = Signal(providing_args=('instance', 'password')) registration_created = Signal(
providing_args=('instance', 'password', 'request', 'validated_data'))
@receiver(registration_created, sender=Registration) @receiver(registration_created, sender=Registration)
def create_user_and_student(sender, instance: Registration, def create_user_and_student(sender, instance: Registration, request, validated_data,
password: str, **kwargs): password: str, **kwargs):
"""Create a user and student after on a registration_created signal.""" """Create a user and student after on a registration_created signal."""
user = User.objects.create_user( # user = User.objects.create_user(
email=instance.email, # email=instance.email,
password=password, # password=password,
first_name=instance.first_name, # first_name=instance.first_name,
last_name=instance.last_name, # last_name=instance.last_name,
phone_number=instance.phone_number, # phone_number=instance.phone_number,
) # is_active=False,
# )
validated_data['password'] = password
form = UserForm(validated_data)
if form.is_valid():
user = send_verification_email(
request, form)
Student.objects.create( Student.objects.create(
user=user, user=user,
dateOfBirth=instance.dateOfBirth, dateOfBirth=instance.dateOfBirth,
registration=instance, registration=instance,)
) else:
print("Probleme lors de la création du user")
from django.forms import ModelForm, TextInput, EmailInput
from .models import User
from users.models import User
class UserForm(ModelForm):
class Meta:
model = User
fields = ["email", "password", "first_name",
"last_name", "phone_number"]
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment