diff --git a/max/routes/user/toggle_enabled.py b/max/routes/user/toggle_enabled.py index 48e106f..e8eb537 100644 --- a/max/routes/user/toggle_enabled.py +++ b/max/routes/user/toggle_enabled.py @@ -2,6 +2,7 @@ from flask import flash from max.db import is_last_enabled_admin, update_user from max.permissions import AllowAdmin +from max.sessions import session_storage from max.translations import t from max.views import BaseView @@ -20,6 +21,8 @@ class UserToggleEnabled(AllowAdmin, FetchUserMixin, BackToUsersMixin, BaseView): ) else: update_user(self.user.id, enabled=(not self.user.enabled)) + if self.user.enabled: # the user was deactivated + session_storage.remove_user_sessions(self.user.id) _, back_url = self.get_back_text_and_url() return self.redirect(back_url) diff --git a/max/sessions.py b/max/sessions.py index 07f20b2..ea31493 100644 --- a/max/sessions.py +++ b/max/sessions.py @@ -68,6 +68,8 @@ class Session(CallbackDict, SessionMixin): return len(self) == 0 def clear(self): + """Removes all data, including the entry in the session storage""" + del session_storage[self.id] self.id = None super().clear()