def process_request(self, request): # все неправильно настроено if not hasattr(request, 'user'): raise ImproperlyConfigured( "The vk.middleware.AuthenticationMiddleware requires the" " Django authentication middleware to be installed. Edit your" " MIDDLEWARE_CLASSES setting to insert" " 'django.contrib.auth.middleware.AuthenticationMiddleware'" " before the vk.middleware.AuthenticationMiddleware class.") # не было попытки авторизоваться через Вконтакте if 'viewer_id' not in request.GET: return # пользователь уже залогинен под тем же именем if request.user.is_authenticated(): if request.user.username == request.GET['viewer_id']: return # пользователь не залогинен или залогинен под другим именем vk_form = VkontakteIframeForm(request.GET) user = auth.authenticate(vk_form=vk_form) if user: request.user = user auth.login(request, user) # устанавливаем язык пользователя lang_code = vk_form.language_code() if hasattr(request, 'session') and lang_code: request.session['django_language'] = lang_code else: request.META['VKONTAKTE_LOGIN_ERRORS'] = vk_form.errors
def process_request(self, request): # все неправильно настроено if not hasattr(request, 'user'): raise ImproperlyConfigured( "The vk.middleware.AuthenticationMiddleware requires the" " Django authentication middleware to be installed. Edit your" " MIDDLEWARE_CLASSES setting to insert" " 'django.contrib.auth.middleware.AuthenticationMiddleware'" " before the vk.middleware.AuthenticationMiddleware class.") # не было попытки авторизоваться через Вконтакте if 'viewer_id' not in request.GET: self._patch_request_with_vkapi(request) return # пользователь уже залогинен под тем же именем if request.user.is_authenticated(): if request.user.username == request.GET['viewer_id']: self._patch_request_with_vkapi(request) return # пользователь не залогинен или залогинен под другим именем vk_form = VkontakteIframeForm(request.GET) user = auth.authenticate(vk_form=vk_form) if user: request.user = user auth.login(request, user) if hasattr(request, 'session'): # устанавливаем язык пользователя lang_code = vk_form.language_code() if lang_code: request.session['django_language'] = lang_code # сохраняем начальные параметры, тк там точно есть что то полезное startup_vars = vk_form.cleaned_data del startup_vars[ 'api_result'] # этот большой кусок сохранять в сессию не будем, он уже есть в vk_profile request.session['vk_startup_vars'] = startup_vars self._patch_request_with_vkapi(request) else: request.META['VKONTAKTE_LOGIN_ERRORS'] = vk_form.errors
def process_request(self, request): # все неправильно настроено if not hasattr(request, 'user'): raise ImproperlyConfigured( "The vk.middleware.AuthenticationMiddleware requires the" " Django authentication middleware to be installed. Edit your" " MIDDLEWARE_CLASSES setting to insert" " 'django.contrib.auth.middleware.AuthenticationMiddleware'" " before the vk.middleware.AuthenticationMiddleware class.") # не было попытки авторизоваться через Вконтакте if 'viewer_id' not in request.GET: self._patch_request_with_vkapi(request) return # пользователь уже залогинен под тем же именем if request.user.is_authenticated(): if request.user.username == request.GET['viewer_id']: self._patch_request_with_vkapi(request) return # пользователь не залогинен или залогинен под другим именем vk_form = VkontakteIframeForm(request.GET) user = auth.authenticate(vk_form=vk_form) if user: request.user = user auth.login(request, user) if hasattr(request, 'session'): # устанавливаем язык пользователя lang_code = vk_form.language_code() if lang_code: request.session['django_language'] = lang_code # сохраняем начальные параметры, тк там точно есть что то полезное startup_vars = vk_form.cleaned_data del startup_vars['api_result'] # этот большой кусок сохранять в сессию не будем, он уже есть в vk_profile request.session['vk_startup_vars'] = startup_vars self._patch_request_with_vkapi(request) else: request.META['VKONTAKTE_LOGIN_ERRORS'] = vk_form.errors