Browse Source

Création d'user

master
Hugo LEVY-FALK 8 years ago
parent
commit
df75c6f7b0
  1. 42
      users/forms.py
  2. 5
      users/templates/users/welcome_user.txt
  3. 9
      users/views.py

42
users/forms.py

@ -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):

5
users/templates/users/welcome_user.txt

@ -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

9
users/views.py

@ -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'))

Loading…
Cancel
Save