Merge branch 'devel'
[qcg-portal.git] / better_sessions / signals.py
diff --git a/better_sessions/signals.py b/better_sessions/signals.py
new file mode 100644 (file)
index 0000000..1553d50
--- /dev/null
@@ -0,0 +1,20 @@
+from django.contrib.auth import user_logged_in
+from django.contrib.sessions.models import Session
+
+from better_sessions.models import UserSession
+
+from .settings import SINGLE_SESSION
+
+
+def post_user_login(sender, request, user, **kwargs):
+    try:
+        Session.objects.filter(session_key=user.session.key).delete()
+    except UserSession.DoesNotExist:
+        user.session = UserSession()
+
+    user.session.key = request.session.session_key
+    user.session.save()
+
+
+if SINGLE_SESSION:
+    user_logged_in.connect(post_user_login)