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.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 .models import School
@ -24,12 +30,42 @@ class CreateUser(forms.ModelForm):
'first_name',
'last_name',
'email',
'groups',
'password',
]
def __init__(self, *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):

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
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
votre mot de passe (en utilisant cette adresse email).
Rendez-vous ici : {{ protocol}}://{{ domain }}{% url 'users:password-reset-confirm' uidb64=uid token=token %} pour réinitialiser votre mot de passe.
Vous pouvez retrouver l'ensemble des informations sur l'évènement ici :
http://festart.rezometz.org

View file

@ -17,14 +17,7 @@ from . import forms
def create_user(request):
user_form = forms.CreateUser(request.POST or None)
if user_form.is_valid():
u = user_form.save()
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
)
u = user_form.save(request)
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))
return redirect(reverse('settings:index'))