diff --git a/app/views/users.py b/app/views/users.py
index 8612d0a8f94032d53ad224b7b8c426d6e273dd61..9e2262207eb09322fd5a1e9596808f955071d499 100644
--- a/app/views/users.py
+++ b/app/views/users.py
@@ -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
diff --git a/scodoc.py b/scodoc.py
index e47b7115fc48216c130f05c2ece2a80e4f805151..d8f114efa3be67add67da9186736d4a9c45f11d2 100755
--- a/scodoc.py
+++ b/scodoc.py
@@ -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: