You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

27 lines
1.3 KiB

# -*- coding: utf-8 -*-
from django.utils.functional import SimpleLazyObject
from django.contrib.auth.views import logout as django_logout
from django.contrib import messages
from customer.models import get_profile
def _get_profile(request):
if not hasattr(request, '_cached_profile'):
request._cached_profile = get_profile(request.user)
return request._cached_profile
class ProfileMiddleware(object):
def process_request(self, request):
assert hasattr(request, 'user'), "The Profile middleware requires authentication middleware to be installed. Edit your MIDDLEWARE_CLASSES setting to insert 'django.contrib.auth.middleware.AuthenticationMiddleware'."
request.profile = SimpleLazyObject(lambda: _get_profile(request))
try:
if request.user.is_authenticated() and request.session and request.user:
if request.user.profile.user_session_key != request.session.session_key and \
request.profile.user_session_key != '':
django_logout(request)
messages.add_message(request, messages.ERROR, u'Другой пользователь вошёл под этим логином.')
except:
# print 'no user profile'
pass