Création d'user
This commit is contained in:
parent
b4c150eb26
commit
df75c6f7b0
3 changed files with 42 additions and 14 deletions
|
@ -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):
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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'))
|
||||
|
|
Loading…
Reference in a new issue