1
0
forked from ScoDoc/ScoDoc

Améliore mail création de compte utilisateur si CAS forcé. Fix #801

This commit is contained in:
Emmanuel Viennet 2023-12-17 22:30:53 +01:00
parent 20407be7ee
commit c316a5ee35
4 changed files with 42 additions and 20 deletions

View File

@ -3,8 +3,14 @@
Votre accès à ScoDoc vient d'être validé.
</p>
<p>
Votre identifiant de connexion est: <b>{{ user.user_name }}</b>
Votre identifiant ScoDoc est: <b>{{ user.user_name }}</b>
</p>
{% if cas_force %}
<p>
Pour vous connecter, vous devrez utiliser votre identifiant universitaire
sur le système d'authentification de votre établissement (CAS, ENT).
</p>
{% endif %}
{% if token %}
<p>Pour initialiser votre mot de passe ScoDoc,
<a href="{{ url_for('auth.reset_password', token=token, _external=True) }}">

View File

@ -1,7 +1,14 @@
Bienvenue {{ user.prenom }} {{ user.nom }},
Votre accès à ScoDoc vient d'être validé.
Votre identifiant de connexion est: {{ user.user_name }}
Votre identifiant ScoDoc est: {{ user.user_name }}
{% if cas_force %}
<p>
Pour vous connecter, vous devrez utiliser votre identifiant universitaire
sur le système d'authentification de votre établissement (CAS, ENT).
</p>
{% endif %}
{% if token %}
Pour initialiser votre mot de passe ScoDoc, suivre le lien:

View File

@ -125,9 +125,10 @@ class ChangePasswordForm(FlaskForm):
class Mode(IntEnum):
WELCOME_AND_CHANGE_PASSWORD = auto()
WELCOME_ONLY = auto()
SILENT = auto()
"Mode d'envoi de mail lors de création d'utilisateur"
WELCOME_AND_CHANGE_PASSWORD = auto() # mail indiquant de changer mdp
WELCOME_ONLY = auto() # mail d'accueil simple
SILENT = auto() # pas de mail
@bp.route("/")
@ -467,23 +468,19 @@ def create_user_form(user_name=None, edit=0, all_roles=True):
"welcome",
{
"title": "Message d'accueil",
"input_type": "checkbox",
"input_type": "boolcheckbox",
"explanation": "Envoie un mail d'accueil à l'utilisateur.",
"labels": ("",),
"allowed_values": ("1",),
"default": "1",
"default": 1,
},
),
(
"reset_password",
{
"title": "",
"input_type": "checkbox",
"explanation": "indiquer par mail de changer le mot de passe initial",
"labels": ("",),
"allowed_values": ("1",),
"default": "1",
# "attributes": ["style='margin-left:20pt'"],
"input_type": "boolcheckbox",
"explanation": """indiquer par mail de changer le mot
de passe initial (sauf si CAS forcé)""",
"default": 1,
},
),
]
@ -727,8 +724,12 @@ def create_user_form(user_name=None, edit=0, all_roles=True):
# A: envoi de welcome + procedure de reset
# B: envoi de welcome seulement (mot de passe saisie dans le formulaire)
# C: Aucun envoi (mot de passe saisi dans le formulaire)
if vals["welcome"] != "1":
if vals["reset_password"] != "1":
if vals["welcome"]: # "Envoie un mail d'accueil" coché
if vals["reset_password"] and (
(not ScoDocSiteConfig.get("cas_force"))
or vals.get("cas_allow_scodoc_login", False)
):
# nb: si login scodoc non autorisé car CAS seul, n'envoie pas le mot de passe.
mode = Mode.WELCOME_AND_CHANGE_PASSWORD
else:
mode = Mode.WELCOME_ONLY
@ -771,18 +772,26 @@ def create_user_form(user_name=None, edit=0, all_roles=True):
token = the_user.get_reset_password_token()
else:
token = None
cas_force = ScoDocSiteConfig.get("cas_force")
# Le from doit utiliser la préférence du département de l'utilisateur
email.send_email(
"[ScoDoc] Création de votre compte",
sender=email.get_from_addr(),
recipients=[the_user.email],
text_body=render_template(
"email/welcome.txt", user=the_user, token=token
"email/welcome.txt",
user=the_user,
token=token,
cas_force=cas_force,
),
html_body=render_template(
"email/welcome.j2", user=the_user, token=token
"email/welcome.j2",
user=the_user,
token=token,
cas_force=cas_force,
),
)
flash(f"Mail accueil envoyé à {the_user.email}")
flash("Nouvel utilisateur créé")
return flask.redirect(

View File

@ -1,7 +1,7 @@
# -*- mode: python -*-
# -*- coding: utf-8 -*-
SCOVERSION = "9.6.71"
SCOVERSION = "9.6.72"
SCONAME = "ScoDoc"