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"