From c316a5ee35462c7b5b5a8c6de966f6a86a527f05 Mon Sep 17 00:00:00 2001 From: Emmanuel Viennet Date: Sun, 17 Dec 2023 22:30:53 +0100 Subject: [PATCH] =?UTF-8?q?Am=C3=A9liore=20mail=20cr=C3=A9ation=20de=20com?= =?UTF-8?q?pte=20utilisateur=20si=20CAS=20forc=C3=A9.=20Fix=20#801?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/templates/email/welcome.j2 | 8 +++++- app/templates/email/welcome.txt | 9 ++++++- app/views/users.py | 43 ++++++++++++++++++++------------- sco_version.py | 2 +- 4 files changed, 42 insertions(+), 20 deletions(-) diff --git a/app/templates/email/welcome.j2 b/app/templates/email/welcome.j2 index 41fb1c61..a785479c 100644 --- a/app/templates/email/welcome.j2 +++ b/app/templates/email/welcome.j2 @@ -3,8 +3,14 @@ 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 %} +

+ Pour vous connecter, vous devrez utiliser votre identifiant universitaire + sur le système d'authentification de votre établissement (CAS, ENT). +

+{% endif %} {% if token %}

Pour initialiser votre mot de passe ScoDoc, diff --git a/app/templates/email/welcome.txt b/app/templates/email/welcome.txt index 2630a8bd..dffb870b 100644 --- a/app/templates/email/welcome.txt +++ b/app/templates/email/welcome.txt @@ -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 %} +

+ Pour vous connecter, vous devrez utiliser votre identifiant universitaire + sur le système d'authentification de votre établissement (CAS, ENT). +

+{% endif %} {% if token %} Pour initialiser votre mot de passe ScoDoc, suivre le lien: diff --git a/app/views/users.py b/app/views/users.py index 80bc4e54..0b4d6bed 100644 --- a/app/views/users.py +++ b/app/views/users.py @@ -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( diff --git a/sco_version.py b/sco_version.py index 92c357e0..88104d88 100644 --- a/sco_version.py +++ b/sco_version.py @@ -1,7 +1,7 @@ # -*- mode: python -*- # -*- coding: utf-8 -*- -SCOVERSION = "9.6.71" +SCOVERSION = "9.6.72" SCONAME = "ScoDoc"