Import config utilisateurs CAS: permet de changer statut active

This commit is contained in:
Emmanuel Viennet 2023-03-03 17:17:14 +01:00
parent 6872c20344
commit 9e43c37194
4 changed files with 22 additions and 7 deletions

View File

@ -169,6 +169,7 @@ def cas_users_import_excel_file(datafile) -> int:
""" """
Import users CAS configuration from Excel file. Import users CAS configuration from Excel file.
May change cas_id, cas_allow_login, cas_allow_scodoc_login May change cas_id, cas_allow_login, cas_allow_scodoc_login
and active.
:param datafile: stream to be imported :param datafile: stream to be imported
:return: nb de comptes utilisateurs modifiés :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: if val != user.cas_allow_scodoc_login:
user.cas_allow_scodoc_login = val user.cas_allow_scodoc_login = val
modif = True modif = True
val = scu.to_bool(info["active"])
if val != (user.active or False):
user.active = val
modif = True
if modif: if modif:
nb_modif += 1 nb_modif += 1
# Record modifications # Record modifications

View File

@ -118,6 +118,10 @@ def permission_required_compat_scodoc7(permission): # XXX TODO A SUPPRIMER
else: else:
abort(405) # method not allowed abort(405) # method not allowed
if user_name and user_password: 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() u = User.query.filter_by(user_name=user_name).first()
if u and u.check_password(user_password): if u and u.check_password(user_password):
auth_ok = True auth_ok = True

View File

@ -4,27 +4,30 @@
{% block app_content %} {% block app_content %}
<h1>Chargement des configurations CAS des utilisateurs</h1> <h1>Chargement des configurations CAS des utilisateurs</h1>
<div class="help" style="max-width: 600px;"> <div style="max-width: 800px;">
<p style="color: red">A utiliser pour modifier le paramétrage CAS de <p style="color: red">A utiliser pour modifier le paramétrage CAS de
<b>comptes utilisateurs existants</b> <b>comptes utilisateurs existants</b>
</p> </p>
<p>L'opération se déroule en plusieurs étapes: <p>L'opération se déroule en plusieurs étapes:
</p> </p>
<ol> <ol>
<li> Dans un premier temps, vous téléchargez une feuille Excel pré-remplie <li style="margin-bottom:8px;"> Dans un premier temps, vous téléchargez une feuille Excel pré-remplie
avec la liste des tous les utilisateurs. avec la liste des tous les utilisateurs.
</li> </li>
<li>Vous modifiez cette feuille avec votre logiciel préféré. <li style="margin-bottom:8px;">Vous modifiez cette feuille avec votre logiciel préféré.
Vous pouvez supprimer des lignes, mais pas en ajouter. Vous pouvez supprimer des lignes, mais pas en ajouter.
<br> <br>
Il faut remplir ou modifier le contenu des colonnes <tt>cas_id</tt>, On peut remplir ou modifier le contenu des colonnes <tt>active</tt>,
<tt>cas_allow_login</tt> et <tt>cas_allow_scodoc_login</tt>. </tt><tt>cas_id</tt>, <tt>cas_allow_login</tt> et <tt>cas_allow_scodoc_login</tt>.
<br> <br>
Les autres colonnes sont là pour information et seront ignorées à l'import, Les autres colonnes sont là pour information et seront ignorées à l'import,
sauf évidemment <tt>user_name</tt> qui sert à repérer l'utilisateur. sauf évidemment <tt>user_name</tt> qui sert à repérer l'utilisateur.
<br>
(Note: <tt>active</tt> 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)
</li> </li>
<li>Revenez sur cette page et chargez le fichier dans ScoDoc. <li style="margin-bottom:32px;">Revenez sur cette page et chargez le fichier dans ScoDoc.
</li> </li>
</ol> </ol>
@ -34,7 +37,7 @@
}}">Obtenir la feuille excel à remplir</a>, }}">Obtenir la feuille excel à remplir</a>,
avec la liste complète des utilisateurs. avec la liste complète des utilisateurs.
</li> </li>
<li style="margin-top: 8px;"><b>Étape 2:</b> <li style="margin-top: 16px;"><b>Étape 2:</b>
<div class="row"> <div class="row">
<div class="col-md-8"> <div class="col-md-8">
{{ wtf.quick_form(form) }} {{ wtf.quick_form(form) }}

View File

@ -1056,5 +1056,8 @@ def toggle_active_user(user_name: str = None):
u.active = not u.active u.active = not u.active
db.session.add(u) db.session.add(u)
db.session.commit() 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 redirect(url_for("users.index_html", scodoc_dept=g.scodoc_dept))
return render_template("auth/toogle_active_user.j2", form=form, u=u) return render_template("auth/toogle_active_user.j2", form=form, u=u)