From 9e43c3719403e361e7a9af1a757e3ca80240cf0b Mon Sep 17 00:00:00 2001 From: Emmanuel Viennet Date: Fri, 3 Mar 2023 17:17:14 +0100 Subject: [PATCH] Import config utilisateurs CAS: permet de changer statut active --- app/auth/cas.py | 5 +++++ app/decorators.py | 4 ++++ app/templates/auth/cas_users_import_config.j2 | 17 ++++++++++------- app/views/users.py | 3 +++ 4 files changed, 22 insertions(+), 7 deletions(-) diff --git a/app/auth/cas.py b/app/auth/cas.py index 01b6c10f..e031a231 100644 --- a/app/auth/cas.py +++ b/app/auth/cas.py @@ -169,6 +169,7 @@ def cas_users_import_excel_file(datafile) -> int: """ Import users CAS configuration from Excel file. May change cas_id, cas_allow_login, cas_allow_scodoc_login + and active. :param datafile: stream to be imported :return: nb de comptes utilisateurs modifiés """ @@ -214,6 +215,10 @@ def cas_users_import_data(users_infos: list[dict]) -> int: if val != user.cas_allow_scodoc_login: user.cas_allow_scodoc_login = val modif = True + val = scu.to_bool(info["active"]) + if val != (user.active or False): + user.active = val + modif = True if modif: nb_modif += 1 # Record modifications diff --git a/app/decorators.py b/app/decorators.py index 8ececa72..08aea4f7 100644 --- a/app/decorators.py +++ b/app/decorators.py @@ -118,6 +118,10 @@ def permission_required_compat_scodoc7(permission): # XXX TODO A SUPPRIMER else: abort(405) # method not allowed if user_name and user_password: + # Ancienne API: va être supprimée courant mars 2023 + current_app.logger.warning( + "using DEPRECATED ScoDoc7 authentication method !" + ) u = User.query.filter_by(user_name=user_name).first() if u and u.check_password(user_password): auth_ok = True diff --git a/app/templates/auth/cas_users_import_config.j2 b/app/templates/auth/cas_users_import_config.j2 index 4bcd8e0d..382908a4 100644 --- a/app/templates/auth/cas_users_import_config.j2 +++ b/app/templates/auth/cas_users_import_config.j2 @@ -4,27 +4,30 @@ {% block app_content %}

Chargement des configurations CAS des utilisateurs

-
+

A utiliser pour modifier le paramétrage CAS de comptes utilisateurs existants

L'opération se déroule en plusieurs étapes:

    -
  1. Dans un premier temps, vous téléchargez une feuille Excel pré-remplie +
  2. Dans un premier temps, vous téléchargez une feuille Excel pré-remplie avec la liste des tous les utilisateurs.
  3. -
  4. Vous modifiez cette feuille avec votre logiciel préféré. +
  5. Vous modifiez cette feuille avec votre logiciel préféré. Vous pouvez supprimer des lignes, mais pas en ajouter.
    - Il faut remplir ou modifier le contenu des colonnes cas_id, - cas_allow_login et cas_allow_scodoc_login. + On peut remplir ou modifier le contenu des colonnes active, + cas_id, cas_allow_login et cas_allow_scodoc_login.
    Les autres colonnes sont là pour information et seront ignorées à l'import, sauf évidemment user_name qui sert à repérer l'utilisateur. +
    + (Note: active active ou désactive le compte, sans lien avec CAS, mais il + est commode de réviser la liste des utilisateurs actifs à l'occasion de la configuration CAS)
  6. -
  7. Revenez sur cette page et chargez le fichier dans ScoDoc. +
  8. Revenez sur cette page et chargez le fichier dans ScoDoc.
@@ -34,7 +37,7 @@ }}">Obtenir la feuille excel à remplir, avec la liste complète des utilisateurs. -
  • Étape 2: +
  • Étape 2:
    {{ wtf.quick_form(form) }} diff --git a/app/views/users.py b/app/views/users.py index eab8bb1e..8e88a87e 100644 --- a/app/views/users.py +++ b/app/views/users.py @@ -1056,5 +1056,8 @@ def toggle_active_user(user_name: str = None): u.active = not u.active db.session.add(u) db.session.commit() + flash( + f"Compte utilisateur {u.user_name} {'activé' if u.active else 'désactivé'}" + ) return redirect(url_for("users.index_html", scodoc_dept=g.scodoc_dept)) return render_template("auth/toogle_active_user.j2", form=form, u=u)