blob: f382652a52c85a149eae7882860544fa26143275 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
from django.contrib.auth.models import User
from django.contrib.sessions.models import Session
from yaksh.models import ConcurrentUser
class OneSessionPerUserMiddleware(object):
def process_request(self, request):
if isinstance(request.user, User):
current_key = request.session.session_key
if hasattr(request.user, 'concurrentuser'):
active_key = request.user.concurrentuser.session_key
if active_key != current_key:
Session.objects.filter(session_key=active_key).delete()
request.user.concurrentuser.session_key = current_key
request.user.concurrentuser.save()
else:
ConcurrentUser.objects.create(
concurrent_user=request.user,
session_key=current_key,
)
|