Nouvelle commande: user-edit --dept. Fix modif dept. si affecté à un dept inexistant.

This commit is contained in:
Emmanuel Viennet 2025-01-20 19:25:47 +01:00
parent 2967596de2
commit 18d5a168e6
2 changed files with 11 additions and 1 deletions

View File

@ -273,7 +273,11 @@ def create_user_form(user_name=None, edit=0, all_roles=True):
administrable_dept_acronyms = _get_administrable_depts()
if edit:
if the_user.dept is None: # seul le super admin peut le toucher
if (the_user.dept is None) or the_user.dept not in (
d.acronym for d in Departement.query.all()
):
# user dans tous dept, ou dans un dept inconnu:
# seul le super admin peut le toucher
edit_only_roles = not current_user.is_administrator()
else:
edit_only_roles = the_user.dept not in administrable_dept_acronyms

View File

@ -471,6 +471,7 @@ def user_change_login(user_name, new_user_name):
is_flag=True,
help="interdit login via ScoDoc",
)
@click.option("--dept", "dept", help="acronyme du départemùent de rattachement")
@click.option(
"-v",
"--verbose",
@ -487,6 +488,7 @@ def user_edit(
disable_scodoc_login=None,
activate=None,
deactivate=None,
dept=None,
verbose=False,
):
"""Add or remove a role to the given user in the given dept"""
@ -508,6 +510,10 @@ def user_edit(
user.active = True
if deactivate:
user.active = False
if dept:
if dept == "@all":
dept = None
user.dept = dept
db.session.add(user)
db.session.commit()
if verbose: