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() administrable_dept_acronyms = _get_administrable_depts()
if edit: 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() edit_only_roles = not current_user.is_administrator()
else: else:
edit_only_roles = the_user.dept not in administrable_dept_acronyms 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, is_flag=True,
help="interdit login via ScoDoc", help="interdit login via ScoDoc",
) )
@click.option("--dept", "dept", help="acronyme du départemùent de rattachement")
@click.option( @click.option(
"-v", "-v",
"--verbose", "--verbose",
@ -487,6 +488,7 @@ def user_edit(
disable_scodoc_login=None, disable_scodoc_login=None,
activate=None, activate=None,
deactivate=None, deactivate=None,
dept=None,
verbose=False, verbose=False,
): ):
"""Add or remove a role to the given user in the given dept""" """Add or remove a role to the given user in the given dept"""
@ -508,6 +510,10 @@ def user_edit(
user.active = True user.active = True
if deactivate: if deactivate:
user.active = False user.active = False
if dept:
if dept == "@all":
dept = None
user.dept = dept
db.session.add(user) db.session.add(user)
db.session.commit() db.session.commit()
if verbose: if verbose: