diff --git a/core/admin/mailu/models.py b/core/admin/mailu/models.py index 752171663..c16a0ab26 100644 --- a/core/admin/mailu/models.py +++ b/core/admin/mailu/models.py @@ -685,7 +685,7 @@ def set_password(self, password, raw=False, keep_sessions=None): set() containing the sessions to keep """ self.password = password if raw else User.get_password_context().hash(password) - if keep_sessions is not True: + if keep_sessions is not True and self.email is not None: utils.MailuSessionExtension.prune_sessions(uid=self.email, keep=keep_sessions) def get_managed_domains(self): diff --git a/towncrier/newsfragments/3411.bugfix b/towncrier/newsfragments/3411.bugfix new file mode 100644 index 000000000..3b1e80ed0 --- /dev/null +++ b/towncrier/newsfragments/3411.bugfix @@ -0,0 +1 @@ +Ensure we do not nuke all web-sessions when a password is changed using the command line