diff --git a/app/scodoc/sco_import_users.py b/app/scodoc/sco_import_users.py
index 7a779b9593..834b8886a3 100644
--- a/app/scodoc/sco_import_users.py
+++ b/app/scodoc/sco_import_users.py
@@ -179,11 +179,12 @@ def import_users(users):
user_ok, msg = sco_users.check_modif_user(
0,
ignore_optionals=False,
+ ajout_en_masse=True,
user_name=u["user_name"],
nom=u["nom"],
prenom=u["prenom"],
email=u["email"],
- roles=u["roles"].split(","),
+ roles=[r for r in u["roles"].split(",") if r],
dept=u["dept"],
)
if not user_ok:
diff --git a/app/scodoc/sco_users.py b/app/scodoc/sco_users.py
index 74853ca801..a8d15e963d 100644
--- a/app/scodoc/sco_users.py
+++ b/app/scodoc/sco_users.py
@@ -388,6 +388,7 @@ def user_info_page(user_name=None):
def check_modif_user(
edit,
ignore_optionals=False,
+ ajout_en_masse=False,
user_name="",
nom="",
prenom="",
@@ -402,9 +403,12 @@ def check_modif_user(
(si ok est faux, l'utilisateur peut quand même forcer la creation)
- msg: message warning à presenter à l'utilisateur
"""
- MSG_OPT = """
- (vous pouvez forcer l'opération en cochant "Ignorer les avertissements" en bas de page)
- """
+ if ajout_en_masse:
+ MSG_OPT = (
+ """
Impossible de forcer l'opération lors d'une importation en masse"""
+ )
+ else:
+ MSG_OPT = """
Attention: (vous pouvez forcer l'opération en cochant "Ignorer les avertissements" en bas de page)"""
# ce login existe ?
user = _user_list(user_name)
if edit and not user: # safety net, le user_name ne devrait pas changer
@@ -438,7 +442,7 @@ def check_modif_user(
and dept != ""
and Departement.query.filter_by(acronym=dept).first() is None
):
- return False, "département '%s' inexistant" % u["dept"] + MSG_OPT
+ return False, "département '%s' inexistant" % dept + MSG_OPT
if ignore_optionals and not roles:
return False, "aucun rôle sélectionné, êtes vous sûr ?" + MSG_OPT
# ok
diff --git a/app/views/users.py b/app/views/users.py
index 0143e4aee1..93687fce71 100644
--- a/app/views/users.py
+++ b/app/views/users.py
@@ -380,14 +380,14 @@ def create_user_form(user_name=None, edit=0, all_roles=1):
if err:
H.append(tf_error_message("""Erreur: %s""" % err))
return "\n".join(H) + "\n" + tf[1] + F
-
ok, msg = sco_users.check_modif_user(
edit,
- ignore_optionals=force,
+ ignore_optionals=not force,
user_name=user_name,
nom=vals["nom"],
prenom=vals["prenom"],
email=vals["email"],
+ dept=vals["dept"],
roles=vals["roles"],
)
if not ok:
@@ -548,7 +548,7 @@ def import_users_form():
H.append("
Ok, Import terminé (%s utilisateurs créés)!
" % nb_created) H.append('' % dest) else: