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 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):
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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…
Reference in a new issue