sso, translation: Help set language cookie when user logins in

This patch only ensures that response object is send along with set_language()
call. In later changes, response object can be used by set_language() to set the
language cookie.

Tests:

- Relevant functional tests pass.

- Login, user's language is set when the language is set to non-browser sent
language.

- Logout, user's language is retained when set to non-browser sent language.

- Login, user's language is set when the language is set to browser sent
language.

- Logout, user's language is retained when set to browser sent language.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
This commit is contained in:
Sunil Mohan Adapa 2021-09-23 18:38:22 -07:00 committed by James Valleroy
parent 45b5769ce6
commit 57931353d3
No known key found for this signature in database
GPG Key ID: 77C0C75E7B650808
2 changed files with 3 additions and 8 deletions

View File

@ -13,7 +13,7 @@ from django.contrib.auth import REDIRECT_FIELD_NAME
from django.contrib.auth.views import LoginView, LogoutView
from django.http import HttpResponseRedirect
from plinth import actions, utils, web_framework
from plinth import actions, translation, utils, web_framework
from .forms import AuthenticationForm, CaptchaAuthenticationForm
@ -51,6 +51,8 @@ class SSOLoginView(LoginView):
def dispatch(self, request, *args, **kwargs):
response = super(SSOLoginView, self).dispatch(request, *args, **kwargs)
if request.user.is_authenticated:
translation.set_language(request, response,
request.user.userprofile.language)
return set_ticket_cookie(request.user, response)
return response

View File

@ -4,8 +4,6 @@ Utility methods for managing translations.
"""
from django.conf import settings
from django.contrib.auth.signals import user_logged_in
from django.dispatch import receiver
from django.utils import translation
@ -58,8 +56,3 @@ def set_language(request, response, language_code):
domain=settings.LANGUAGE_COOKIE_DOMAIN,
)
@receiver(user_logged_in)
def _on_user_logged_in(sender, request, user, **kwargs):
"""When the user logs in, set the current language."""
set_language(request, None, user.userprofile.language)