Création d'user

This commit is contained in:
Hugo LEVY-FALK 2018-03-18 11:36:52 +01:00
parent b4c150eb26
commit df75c6f7b0
3 changed files with 42 additions and 14 deletions

View file

@ -1,4 +1,10 @@
from django import forms from django import forms
from django.utils.encoding import force_bytes
from django.core.mail import send_mail
from django.template import loader
from django.contrib.auth.tokens import default_token_generator
from django.utils.http import urlsafe_base64_encode
from django.contrib.sites.shortcuts import get_current_site
from django.contrib.auth.models import User from django.contrib.auth.models import User
from .models import School from .models import School
@ -24,12 +30,42 @@ class CreateUser(forms.ModelForm):
'first_name', 'first_name',
'last_name', 'last_name',
'email', 'email',
'groups',
'password',
] ]
def __init__(self, *args, **kwargs): def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs) super().__init__(*args, **kwargs)
self.fields['password'].widget = forms.PasswordInput()
def save(self, request):
user = super().save(commit=None)
user.password = ''
user.save()
site = get_current_site(request)
context = {
'email': user.email,
'domain': site.domain,
'site_name': site.name,
'uid': urlsafe_base64_encode(force_bytes(user.pk)).decode(),
'user': user,
'token': default_token_generator.make_token(user),
'protocol': 'https',
}
self.send_mail(context, user.email)
return user
def send_mail(self, context, to_email):
"""
Send a django.core.mail.EmailMultiAlternatives to `to_email`.
"""
subject = "Inscription sur Il était une fois dans l'Est"
body = loader.render_to_string("users/welcome_user.txt", context)
from_email = "noreply.festart@rezometz.org"
send_mail(
subject,
body,
from_email,
[to_email],
fail_silently=False,
)
class EditPhone(forms.ModelForm): class EditPhone(forms.ModelForm):

View file

@ -3,10 +3,9 @@ Bienvenue sur le site d'Il était une fois dans l'Est.
Vous recevez cet email car vous avez été désigné responsable des productions Vous recevez cet email car vous avez été désigné responsable des productions
vidéos pour votre école. vidéos pour votre école.
Votre identifiant est : {{id}} Votre identifiant est : {{user.username}}
Rendez-vous ici : http://festart.rezometz.org/users/reset pour réinitialiser Rendez-vous ici : {{ protocol}}://{{ domain }}{% url 'users:password-reset-confirm' uidb64=uid token=token %} pour réinitialiser votre mot de passe.
votre mot de passe (en utilisant cette adresse email).
Vous pouvez retrouver l'ensemble des informations sur l'évènement ici : Vous pouvez retrouver l'ensemble des informations sur l'évènement ici :
http://festart.rezometz.org http://festart.rezometz.org

View file

@ -17,14 +17,7 @@ from . import forms
def create_user(request): def create_user(request):
user_form = forms.CreateUser(request.POST or None) user_form = forms.CreateUser(request.POST or None)
if user_form.is_valid(): if user_form.is_valid():
u = user_form.save() u = user_form.save(request)
send_mail(
"Bienvenue sur Il était une fois dans l'Est.",
render_to_string("users/welcome_user.txt", {'id':u.username}),
"noreply.festart@rezometz.org",
[u.email],
fail_silently=False
)
messages.success(request, "L'utilisateur {} {} a bien été créé un mail lui a été envoyé pour réinitialiser son mot de passe.".format( messages.success(request, "L'utilisateur {} {} a bien été créé un mail lui a été envoyé pour réinitialiser son mot de passe.".format(
u.first_name, u.last_name)) u.first_name, u.last_name))
return redirect(reverse('settings:index')) return redirect(reverse('settings:index'))