From ac8e818a354e655d67fd2fb6737fe6373129ab9f Mon Sep 17 00:00:00 2001
From: Art Lukyanchyk <artiom.lukyanchyk@hs-hannover.de>
Date: Wed, 5 Jan 2022 15:24:57 +0100
Subject: [PATCH] Delete old sessions on start

---
 ssoauth/apps.py | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

diff --git a/ssoauth/apps.py b/ssoauth/apps.py
index e5813d6..2ac15b1 100644
--- a/ssoauth/apps.py
+++ b/ssoauth/apps.py
@@ -6,6 +6,7 @@ from django.db.utils import OperationalError, ProgrammingError
 from django.db.models import Q
 from django.contrib.auth import get_user_model
 from django.utils import timezone
+from django.core.management import call_command
 from . import app_settings
 from . import logger
 from . import sso_utils
@@ -31,10 +32,16 @@ class SSOAuthConfig(AppConfig):
         # default groups
         post_migrate.connect(self.post_migrate_callback, sender=self)
         # cleanup
+        warnings = list()
         try:
             self.cleanup_users()
         except (OperationalError, ProgrammingError,) as e:
-            return [Warning("ssoauth could not cleanup users. Not migrated yet?")]
+            warnings.append(Warning("ssoauth could not cleanup users. Not migrated yet?"))
+        try:
+            self.cleanup_sessions()
+        except Exception as e:
+            warnings.append(Warning("ssoauth could not cleanup sessions. {}".format(e)))
+        return warnings or None
 
     @staticmethod
     def post_migrate_callback(*args, **kwargs):
@@ -54,3 +61,6 @@ class SSOAuthConfig(AppConfig):
             user.is_staff = False
             user.save()
 
+    def cleanup_sessions(self):
+        call_command("clearsessions")
+
-- 
GitLab